From d23a7b9db932be706fecf5f4c9711fd4214bb64e Mon Sep 17 00:00:00 2001 From: itchyny Date: Sun, 1 Jun 2025 14:51:21 +0900 Subject: [PATCH] Update NEWS.md and AUTHORS for 1.8.0 (#3330) --- AUTHORS | 53 ++++++++++++- NEWS.md | 242 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 294 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 023f2d4b..d52df1e5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -26,9 +26,11 @@ Alex Ozdemir Alex Wilson Alexandre Jasmin Allan Clark +Andreas Heiduk Andrew O'Brien Andrew Rodland Andrew Speed +Andy Lester Ankur Anthony Shortland Anthony Sottile @@ -37,16 +39,22 @@ Attila Fülöp Benjamin Wuethrich Benoit de Chezelles Bernard Niset +Bhargava Mummadireddy Bradley Skaggs +Brahm Lower Brendan Macmillan Cameron Sparr Chance Zibolski Charles Merriam +Chris LaRose Chris Moore +Christoph Anton Mitterer Christopher Degawa Ciaran McNamara <1372986+ciaranmcnamara@users.noreply.github.com> Clément MATHIEU +Colin Leroy-Mira Colin von Heuring +Dag-Erling Smørgrav Damian Gryski Dan Church Daniel Lange @@ -55,24 +63,31 @@ David Fetter David Haguenauer David Korczynski David R. MacIver +DavidKorczynski Dawid Ferenczy Rogožan Derrick Pallas Doug Luce Eiichi Sato Eli Schwartz +Eloy Coto Eric Bréchemier Erik Brinkman Eugen Evan Zacks +Fabian Dellwing Felix Wolfsteller Filippo Giunchedi Filippo Valsorda Florian Weimer Frederic Cambus +Gabriel Marin +Gaelan Steele +George Hopkins Gert Van Gool Gijs Kunze Gustav HE, Tao +Han Jiang Hanfei Shen Hanson Char Haochen Xie @@ -81,6 +96,7 @@ Henré Botha Ian Miell Ikko Ashimine J Phani Mahesh +J. B. Rainsberger Jack Pearkes Jakub Jirutka Jakub Wilk @@ -90,16 +106,21 @@ Jan Schulz Janne Cederberg Jason Hood Jay Satiro +Jesper Rønn-Jensen Jingwen Owen Ou Joe Littlejohn Joel Nothman Joel Purra +Jonathan Chan Kwan Yin Jonathan Word Josh Soref <2119212+jsoref@users.noreply.github.com> Juan Guerrero +Kamontat Chantrachirathumrong <14089557+kamontat@users.noreply.github.com> Kenny Shen Kim De Mey Kim Toms +Kirk McKelvey +Klemens Nanni LCD 47 Larry Aasen Lee Thompson @@ -110,25 +131,29 @@ MCApollo <34170230+MCApollo@users.noreply.github.com> Marc Abramowitz Marc Bruggmann Marcin Kłopotek +Marcin Serwin Mark Feit Mark McKinstry Markus Lanthaler Matt Clegg +Matt Meyers Matti Åstrand Mattias Hansson Maxime Biais Maximilian Roos <5635139+max-sixty@users.noreply.github.com> Michael Daines +Michael Färber <01mf02@gmail.com> Mike Daines Mike Fletcher Mike McCabe +Nathan Baulch Naïm Favier Nicolas Pouillard +Nicole Wren Paul Chvostek Paul Wise Peter van Dijk Philipp Hagemeister -Rémy Léone Ricardo Constantino Richard Groves Richard H Lee @@ -139,6 +164,9 @@ Roland C. Dowdeswell Roman Inflianskas Romero Malaquias Ryoichi KATO +Rémy Léone +SArpnt +Samar Sunkaria Santiago Lapresta Sean Wei Sebastian Freundt @@ -149,17 +177,24 @@ Stefan Stefan Seemayer Stephen Roantree Stephen Shaw +Steven Ihde Steven Maude Steven Penny +Thalia Archibald +Thomas Bozeman th026106 Thomas R. Hall +Thomas Sibley Tim McCormack Timothy John Perisho Eccleston Tom Wolf Tomas Halman Travis Gockel +Tyler Rockwood +Ulrich Eckhardt W-Mark Kubacki William Chargin Yasuhiro Matsumoto +Yeikel Yoichi Nakayama Zhaohui Mei Zhiming Wang @@ -167,14 +202,30 @@ calpeconsulting <61429736+calpeconsulting@users.noreply.github.com> cdnbacon dak180 davkor +dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> eitsupi <50911393+eitsupi@users.noreply.github.com> +fletcher gornick +github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> +goodactive <167312449+goodactive@users.noreply.github.com> i jkleint +lectrical <14344693+lectrical@users.noreply.github.com> +liviubobocu +maflcko <6399679+maflcko@users.noreply.github.com> mail6543210 mjarosie +myaaaaaaaaa <103326468+myaaaaaaaaa@users.noreply.github.com> nmulcahey +orbea polyester rain1 +riastradh +sachint <32639496+sachintu47@users.noreply.github.com> +sheepster tal@whatexit.org +taoky trantor +wellweek <148746285+wellweek@users.noreply.github.com> +wllm-rbnt zstadler +наб diff --git a/NEWS.md b/NEWS.md index 51daf0a3..bbdd6304 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,245 @@ +# 1.8.0 + +We are pleased to announce the release of version 1.8.0. +This release includes a number of improvements since the last version. +Note that some changes may introduce breaking changes to existing scripts, +so be sure to read the following information carefully. +Full commit log can be found at . + +## Releasing + +- Change the version number pattern to `1.X.Y` (`1.8.0` instead of `1.8`). @itchyny #2999 +- Generate provenance attestations for release artifacts and docker image. @lectrical #3225 + + ```sh + gh attestation verify --repo jqlang/jq jq-linux-amd64 + gh attestation verify --repo jqlang/jq oci://ghcr.io/jqlang/jq:1.8.0 + ``` + +## Security fixes + +- CVE-2024-23337: Fix signed integer overflow in `jvp_array_write` and `jvp_object_rehash`. + @itchyny de21386681c0df0104a99d9d09db23a9b2a78b1e + - The fix for this issue now limits the maximum size of arrays and objects to 536870912 (`2^29`) elements. +- CVE-2024-53427: Reject NaN with payload while parsing JSON. + @itchyny a09a4dfd55e6c24d04b35062ccfe4509748b1dd3 + - The fix for this issue now drops support for NaN with payload in JSON (like `NaN123`). + Other JSON extensions like `NaN` and `Infinity` are still supported. +- CVE-2025-48060: Fix heap buffer overflow in `jv_string_vfmt`. + @itchyny c6e041699d8cd31b97375a2596217aff2cfca85b +- Fix use of uninitialized value in `check_literal`. @itchyny #3324 +- Fix segmentation fault on `strftime/1`, `strflocaltime/1`. @itchyny #3271 +- Fix unhandled overflow in `@base64d`. @emanuele6 #3080 + +## CLI changes + +- Fix `--indent 0` implicitly enabling `--compact-output`. @amarshall @gbrlmarn @itchyny #3232 + + ```sh + $ jq --indent 0 . <<< '{ "foo": ["hello", "world"] }' + { + "foo": [ + "hello", + "world" + ] + } + # Previously, this implied --compact-output, but now outputs with new lines. + ``` + +- Improve error messages to show problematic position in the filter. @itchyny #3292 + + ```sh + $ jq -n '1 + $foo + 2' + jq: error: $foo is not defined at , line 1, column 5: + 1 + $foo + 2 + ^^^^ + jq: 1 compile error + ``` + +- Include column number in parser and compiler error messages. @liviubobocu #3257 +- Fix error message for string literal beginning with single quote. @mattmeyers #2964 + + ```sh + $ jq .foo <<< "{'foo':'bar'}" + jq: parse error: Invalid string literal; expected ", but got ' at line 1, column 7 + # Previously, the error message was Invalid numeric literal at line 1, column 7. + ``` + +- Improve `JQ_COLORS` environment variable to support larger escapes like truecolor. @SArpnt #3282 + + ```sh + JQ_COLORS="38;2;255;173;173:38;2;255;214;165:38;2;253;255;182:38;2;202;255;191:38;2;155;246;255:38;2;160;196;255:38;2;189;178;255:38;2;255;198;255" jq -nc '[null,false,true,42,{"a":"bc"}]' + ``` + +- Add `--library-path` long option for `-L`. @thaliaarchi #3194 +- Fix `--slurp --stream` when input has no trailing newline character. @itchyny #3279 +- Fix `--indent` option to error for malformed values. @thaliaarchi #3195 +- Fix option parsing of `--binary` on non-Windows platforms. @calestyo #3131 +- Fix issue with `~/.jq` on Windows where `$HOME` is not set. @kirkoman #3114 +- Fix broken non-Latin output in the command help on Windows. @itchyny #3299 +- Increase the maximum parsing depth for JSON to 10000. @itchyny #3328 +- Parse short options in order given. @thaliaarchi #3194 +- Consistently reset color formatting. @thaliaarchi #3034 + +## New functions + +- Add `trim/0`, `ltrim/0` and `rtrim/0` to trim leading and trailing white spaces. @wader #3056 + + ```sh + $ jq -n '" hello " | trim, ltrim, rtrim' + "hello" + "hello " + " hello" + ``` + +- Add `trimstr/1` to trim string from both ends. @gbrlmarn #3319 + + ```sh + $ jq -n '"foobarfoo" | trimstr("foo")' + "bar" + ``` + +- Add `add/1`. Generator variant of `add/0`. @myaaaaaaaaa #3144 + + ```sh + $ jq -c '.sum = add(.xs[])' <<< '{"xs":[1,2,3]}' + {"xs":[1,2,3],"sum":6} + ``` + +- Add `skip/2` as the counterpart to `limit/2`. @itchyny #3181 + + ```sh + $ jq -nc '[1,2,3,4,5] | [skip(2; .[])]' + [3,4,5] + ``` + +- Add `toboolean/0` to convert strings to booleans. @brahmlower @itchyny #2098 + + ```sh + $ jq -n '"true", "false" | toboolean' + true + false + ``` + +- Add `@urid` format. Reverse of `@uri`. @fmgornick #3161 + + ```sh + $ jq -Rr '@urid' <<< '%6a%71' + jq + ``` + +## Changes to existing functions + +- Use code point index for `indices/1`, `index/1` and `rindex/1`. @wader #3065 + - This is a breaking change. Use `utf8bytelength/0` to get byte index. +- Improve `tonumber/0` performance and rejects numbers with leading or trailing + white spaces. @itchyny @thaliaarchi #3055 #3195 + - This is a breaking change. Use `trim/0` to remove leading and trailing white spaces. +- Populate timezone data when formatting time. This fixes timezone name in + `strftime/1`, `strflocaltime/1` for DST. @marcin-serwin @sihde #3203 #3264 #3323 +- Preserve numerical precision on unary negation, `abs/0`, `length/0`. @itchyny #3242 #3275 +- Make `last(empty)` yield no output values like `first(empty)`. @itchyny #3179 +- Make `ltrimstr/1` and `rtrimstr/1` error for non-string inputs. @emanuele6 #2969 +- Make `limit/2` error for negative count. @itchyny #3181 +- Fix `mktime/0` overflow and allow fewer elements in date-time representation array. @emanuele6 #3070 #3162 +- Fix non-matched optional capture group. @wader #3238 +- Provide `strptime/1` on all systems. @george-hopkins @fdellwing #3008 #3094 +- Fix `_WIN32` port of `strptime`. @emanuele6 #3071 +- Improve `bsearch/1` performance by implementing in C. @eloycoto #2945 +- Improve `unique/0` and `unique_by/1` performance. @itchyny @emanuele6 #3254 #3304 +- Fix error messages including long string literal not to break Unicode characters. @itchyny #3249 +- Remove `pow10/0` as it has been deprecated in glibc 2.27. Use `exp10/0` instead. @itchyny #3059 +- Remove private (and undocumented) `_nwise` filter. @itchyny #3260 + +## Language changes + +- Fix precedence of binding syntax against unary and binary operators. + Also, allow some expressions as object values. @itchyny #3053 #3326 + - This is a breaking change that may change the output of filters with binding syntax as follows. + + ```sh + $ jq -nc '[-1 as $x | 1,$x]' + [1,-1] # previously, [-1,-1] + $ jq -nc '1 | . + 2 as $x | -$x' + -3 # previously, -1 + $ jq -nc '{x: 1 + 2, y: false or true, z: null // 3}' + {"x":3,"y":true,"z":3} # previously, syntax error + ``` + +- Support Tcl-style multiline comments. @emanuele6 #2989 + + ```sh + #!/bin/sh -- + # Can be use to do shebang scripts. + # Next line will be seen as a comment be of the trailing backslash. \ + exec jq ... + # this jq expression will result in [1] + [ + 1, + # \ + 2 + ] + ``` + +- Fix `foreach` not to break init backtracking with `DUPN`. @kanwren #3266 + + ```sh + $ jq -n '[1, 2] | foreach .[] as $x (0, 1; . + $x)' + 1 + 3 + 2 + 4 + ``` + +- Fix `reduce`/`foreach` state variable should not be reset each iteration. @itchyny #3205 + + ```sh + $ jq -n 'reduce range(5) as $x (0; .+$x | select($x!=2))' + 8 + $ jq -nc '[foreach range(5) as $x (0; .+$x | select($x!=2); [$x,.])]' + [[0,0],[1,1],[3,4],[4,8]] + ``` + +- Support CRLF line breaks in filters. @itchyny #3274 +- Improve performance of repeating strings. @itchyny #3272 + +## Documentation changes + +- Switch the homepage to custom domain [jqlang.org](https://jqlang.org). @itchyny @owenthereal #3243 +- Make latest release instead of development version the default manual. @wader #3130 +- Add opengraph meta tags. @wader #3247 +- Replace jqplay.org with play.jqlang.org @owenthereal #3265 +- Add missing line from decNumber's licence to `COPYING`. @emanuele6 #3106 +- Various document improvements. @tsibley #3322, @itchyny #3240, @jhcarl0814 #3239, + @01mf02 #3184, @thaliaarchi #3199, @NathanBaulch #3173, @cjlarose #3164, + @sheepster1 #3105, #3103, @kishoreinvits #3042, @jbrains #3035, @thalman #3033, + @SOF3 #3017, @wader #3015, @wllm-rbnt #3002 + +## Build improvements + +- Fix build with GCC 15 (C23). @emanuele6 #3209 +- Fix build with `-Woverlength-strings` @emanuele6 #3019 +- Fix compiler warning `type-limits` in `found_string`. @itchyny #3263 +- Fix compiler error in `jv_dtoa.c` and `builtin.c`. @UlrichEckhardt #3036 +- Fix warning: a function definition without a prototype is deprecated. @itchyny #3259 +- Define `_BSD_SOURCE` in `builtin.c` for OpenBSD support. @itchyny #3278 +- Define empty `JV_{,V}PRINTF_LIKE` macros if `__GNUC__` is not defined. @emanuele6 #3160 +- Avoid `ctype.h` abuse: cast `char` to `unsigned char` first. @riastradh #3152 +- Remove multiple calls to free when successively calling `jq_reset`. @Sameesunkaria #3134 +- Enable IBM z/OS support. @sachintu47 #3277 +- Fix insecure `RUNPATH`. @orbea #3212 +- Avoid zero-length `calloc`. @itchyny #3280 +- Move oniguruma and decNumber to vendor directory. @itchyny #3234 + +## Test improvements + +- Run tests in C locale. @emanuele6 #3039 +- Improve reliability of `NO_COLOR` tests. @dag-erling #3188 +- Improve `shtest` not to fail if `JQ_COLORS` and `NO_COLOR` are already set. @SArpnt #3283 +- Refactor constant folding tests. @itchyny #3233 +- Make tests pass when `--disable-decnum`. @nicowilliams 6d02d53f515bf1314d644eee93ba30b0d11c7d2b +- Disable Valgrind by default during testing. @itchyny #3269 + # 1.7.1 ## Security