This release adds a lot of new features to jaq:
- Recursive & nested functions: see the README for restrictions of recursive functions
- Variable arguments:
def foo($v; f): ... - Variables bound via command-line arguments (
--arg) can be referred to from definitions now - New filters:
walk(f),group_by(f),unique,unique_by(f),paths - Tests (
--run-tests)
Thanks are due especially to @passcod for having implemented native filters. Users that use jaq as part of their own programs via the API can now implement filters as Rust functions and expose them to jaq. The API is still subject to change, see #70.
Given the extent of these new features, I think that the time is ripe for a 1.0 release.
However, this is an alpha release because especially recursive/nested functions have not yet received the amount of testing that I would expect from a 1.0 release.
As I will be going this week on a cycling trip that will last about two months, I will not be available during this time to address issues myself. However, it is my hope that this time allows users to test the new functions and to report issues (and in the optimal case submit PRs to fix the problems), in order to allow for a more polished 1.0 release later.
New Contributors
- @Shirtpantswallet made their first contribution in #65
- @passcod made their first contribution in #70
Full Changelog: v0.10.0...v1.0.0-alpha