http://open-source-security-software.net/project/jq/releases.atom Recent releases for jq 2023-10-03T20:38:35.447708+00:00 python-feedgen jq jq-1.5rc1 jq jq-1.5rc1 2015-01-01T02:54:01+00:00 Salient new features since 1.4: - regexp support (using Oniguruma) - an online streaming parser Included is the ability to control reading of inputs from the jq program, using the new `input` and `inputs` builtins. Finally we can write: jq -n 'reduce inputs as $i ( ... )' # reduce online! to reduce inputs without slurping them first. This works with streaming too. - try/catch, for catching and handling errors (this makes for a dynamic non-local exit system) - a lexical non-local exit system Using try/catch to break out of control structures was not a good thing. A lexical mechanism is. You can now say label $foo | ..... | break $foo where the break causes control to return to the label $foo, which then produces `empty` (backtracks). There's named and anonymous labels. - tail call optimization (TCO), which allows efficient recursion in jq - a variety of new control structure builtins (e.g., `while(cond; exp)`, `repeat(exp)`, `until(cond; next)`) - an enhanced form of `reduce`: `foreach exp as $name (init_exp; update_exp; extract_exp)` - a proper module system import "foo/bar" as bar; # import foo/bar.jq's defs into a bar::\* namespace - the ability to read module data files import "foo/bar" as $bar; # read foo/bar.json, bind to $bar::bar - `--argjson var '<JSON text>'` Using --arg var <number> bit me too many times :) - `--in-place` / `-i` for in-place editing of files - support for application/json-seq. - a variety of new utility functions, many being community contributions - a variety of performance enhancements (e.g., constant folding) - `def($a): ...;` is now allowed as an equivalent of `def(a): a as $a | ...;` Lastly, don't forget the wiki! It has a lot of new content since 1.4, much of it contributed by the community. 2015-01-01T02:54:01+00:00 jq jq-1.5rc2 jq jq-1.5rc2 2015-07-27T04:14:01+00:00 Thanks to the 20+ developers who have sent us PRs since 1.4, and the many contributors to issues and the wiki. We're nearing a 1.5 release, finally. Salient new features since 1.4: - regexp support (using Oniguruma)! - a proper module system `import "foo/bar" as bar; # import foo/bar.jq's defs into a bar::* namespace` and `include "foo/bar"; # import foo/bar.jq's defs into the top-level` - destructuring syntax (`. as [$first, $second, {$foo, $bar}] | ...`) - math functions - an online streaming parser - minimal I/O builtions (`inputs`, `debug`) One can now write: `jq -n 'reduce inputs as $i ( ... )'` to reduce inputs in an online way without having to slurp them first! This works with streaming too. - try/catch, for catching and handling errors (this makes for a dynamic non-local exit system) - a lexical non-local exit system One can now say `label $foo | ..... | break $foo` where the break causes control to return to the label $foo, which then produces `empty` (backtracks). There's named and anonymous labels. - tail call optimization (TCO), which allows efficient recursion in jq - a variety of new control structure builtins (e.g., `while(cond; exp)`, `repeat(exp)`, `until(cond; next)`), many of which internally use TCO - an enhanced form of `reduce`: `foreach exp as $name (init_exp; update_exp; extract_exp)` - the ability to read module data files `import "foo/bar" as $bar; # read foo/bar.json, bind to $bar::bar` - `--argjson var '<JSON text>'` Using --arg var <number> bit me too many times :) - `--slurpfile var "filename"` Replaces the `--argfile` form (which is now deprecated but remains for backward compatibility). - support for application/json-seq (RFC7464) - a large variety of new utility functions, many being community contributions (e.g., `bsearch`, for binary searching arrays) - datetime functions - a variety of performance enhancements - `def($a): ...;` is now allowed as an equivalent of `def(a): a as $a | ...;` - test and build improvements, including gcov support Lastly, don't forget the wiki! The wiki has a lot of new content since 1.4, much of it contributed by the community. 2015-07-27T04:14:01+00:00 jq jq-1.4 jq jq-1.4 2015-08-08T05:00:03+00:00 The manual for jq 1.4 can be found at https://stedolan.github.io/jq/manual/v1.4/ 2015-08-08T05:00:03+00:00 jq jq-1.3 jq jq-1.3 2015-08-08T05:03:24+00:00 The manual for jq 1.3 can be found at https://stedolan.github.io/jq/manual/v1.3/ 2015-08-08T05:03:24+00:00 jq jq-1.2 jq jq-1.2 2015-08-08T05:04:02+00:00 jq 1.2 2015-08-08T05:04:02+00:00 jq jq-1.0 jq jq-1.0 2015-08-08T05:04:15+00:00 jq 1.0 2015-08-08T05:04:15+00:00 jq jq-1.1 jq jq-1.1 2015-08-08T05:04:24+00:00 jq 1.1 2015-08-08T05:04:24+00:00 jq jq-1.5 jq jq-1.5 2015-08-16T06:39:17+00:00 Thanks to the 20+ developers who have sent us PRs since 1.4, and the many contributors to issues and the wiki. The manual for jq 1.5 can be found at https://stedolan.github.io/jq/manual/v1.5/ Salient new features since 1.4: - regexp support (using Oniguruma)! - a proper module system `import "foo/bar" as bar; # import foo/bar.jq's defs into a bar::* namespace` and `include "foo/bar"; # import foo/bar.jq's defs into the top-level` - destructuring syntax (`. as [$first, $second, {$foo, $bar}] | ...`) - math functions - an online streaming parser - minimal I/O builtions (`inputs`, `debug`) One can now write: `jq -n 'reduce inputs as $i ( ... )'` to reduce inputs in an online way without having to slurp them first! This works with streaming too. - try/catch, for catching and handling errors (this makes for a dynamic non-local exit system) - a lexical non-local exit system One can now say `label $foo | ..... | break $foo` where the break causes control to return to the label $foo, which then produces `empty` (backtracks). There's named and anonymous labels. - tail call optimization (TCO), which allows efficient recursion in jq - a variety of new control structure builtins (e.g., `while(cond; exp)`, `repeat(exp)`, `until(cond; next)`), many of which internally use TCO - an enhanced form of `reduce`: `foreach exp as $name (init_exp; update_exp; extract_exp)` - the ability to read module data files `import "foo/bar" as $bar; # read foo/bar.json, bind to $bar::bar` - `--argjson var '<JSON text>'` Using --arg var <number> bit me too many times :) - `--slurpfile var "filename"` Replaces the `--argfile` form (which is now deprecated but remains for backward compatibility). - support for application/json-seq (RFC7464) - a large variety of new utility functions, many being community contributions (e.g., `bsearch`, for binary searching arrays) - datetime functions - a variety of performance enhancements - `def($a): ...;` is now allowed as an equivalent of `def(a): a as $a | ...;` - test and build improvements, including gcov support Lastly, don't forget the wiki! The wiki has a lot of new content since 1.4, much of it contributed by the community. 2015-08-16T06:39:17+00:00 jq jq-1.6 jq jq-1.6 2018-11-02T01:54:23+00:00 ## New in this release since 1.5: - Destructuring Alternation - New Builtins: - `builtins/0` - `stderr/0` - `halt/0, halt_error/1` - `isempty/1` - `walk/1` - `utf8bytelength/1` - `localtime/0, strflocaltime/1` - SQL-style builtins - and more! - Add support for ASAN and UBSAN - Make it easier to use jq with shebangs (8f6f28c) - Add `$ENV` builtin variable to access environment - Add `JQ_COLORS` env var for configuring the output colors ## Bug fixes: - Calling `jq` without a program argument now always assumes `.` for the program, regardless of stdin/stdout. (5fe0536) - Make sorting stable regardless of qsort. (7835a72) - Adds a local oniguruma submodule and the `./configure --with-oniguruma=builtin` option to make it easier to build with oniguruma support on systems where you can't install system-level libraries. (c6374b6 and 02bad4b) - And much more! 2018-11-02T01:54:23+00:00