@@ -6,17 +6,18 @@ Since the last stable release many things have happened:
6
6
7
7
- jq now lives at < https://github.com/jqlang >
8
8
- New maintainers, admins, and owners have been recruited.
9
- - A list of [ current maintainers] ( https://github.com/jqlang/jq/blob/70bbd10b0b58e797d03963264fc934879bb44454/AUTHORS#L4-L13 )
10
- - CI, scan builds, release builds etc now use GitHub actions. @owenthereal #2596 #2620
9
+ - A list of [ current maintainers] ( https://github.com/jqlang/jq/blob/jq-1.7/AUTHORS#L4-L14 )
10
+ - NEWS file is replaced by NEWS.md with Markdown format. @wader #2599
11
+ - CI, scan builds, release, website builds etc now use GitHub actions. @owenthereal @wader @itchyny #2596 #2603 #2620 #2723
11
12
- Lots of documentation improvements and fixes.
12
- - Web site updated with new auto complete , better section ids for linking, dark mode, etc. @itchyny #2628
13
+ - Website updated with new section search box , better section ids for linking, dark mode, etc. @itchyny #2628
13
14
- Release builds for:
14
15
- Linux ` amd64 ` , ` arm64 ` , ` armel ` , ` armhf ` , ` i386 ` , ` mips ` , ` mips64 ` , ` mips64el ` , ` mips64r6 ` , ` mips64r6el ` , ` mipsel ` , ` mipsr6 ` , ` mipsr6el ` , ` powerpc ` , ` ppc64el ` , ` riscv64 ` and ` s390x `
15
16
- macOS ` amd64 ` and ` arm64 `
16
- - Windows ` i386 ` and ` amd64 `
17
+ - Windows ` i386 ` and ` amd64 `
17
18
- Docker ` linux/386 ` , ` linux/amd64 ` , ` linux/arm64 ` , ` linux/mips64le ` , ` linux/ppc64le ` , ` linux/riscv64 ` and ` linux/s390x `
18
19
- More details see @owenthereal #2665
19
- - Docker images are now available from ` ghcr.io/jqlang/jq ` instead of docker hub . @itchyny #2652
20
+ - Docker images are now available from ` ghcr.io/jqlang/jq ` instead of Docker Hub . @itchyny #2652 # 2686
20
21
- OSS-fuzz. @DavidKorczynski #2760 #2762
21
22
22
23
Full commit log can be found at < https://github.com/jqlang/jq/compare/jq-1.6...jq-1.7 > but here are some highlights:
@@ -33,9 +34,10 @@ Full commit log can be found at <https://github.com/jqlang/jq/compare/jq-1.6...j
33
34
}
34
35
```
35
36
37
+ - Change the default color of null to Bright Black. @itchyny #2824
36
38
- Respect ` NO_COLOR ` environment variable to disable color output. See < https://no-color.org > for details. @itchyny #2728
37
- - Improved ` --help ` output. Now mentions all options and nicer order. @itchyny #2747 #2766
38
- - Last output value can now control exit code using ` --exit-code ` /` -e ` . @ryo1kato #1697
39
+ - Improved ` --help ` output. Now mentions all options and nicer order. @itchyny @ wader #2747 #2766 # 2799
40
+ - Fix multiple issues of exit code using ` --exit-code ` /` -e ` option . @ryo1kato #1697
39
41
40
42
``` sh
41
43
# true-ish last output value exits with zero
@@ -51,7 +53,7 @@ Full commit log can be found at <https://github.com/jqlang/jq/compare/jq-1.6...j
51
53
4
52
54
```
53
55
54
- - Add ` --binary ` /` -b ` on Windows for binary output. To get ` \n ` instead of ` \r\n ` line endings. 0dab2b1 @nicowilliams
56
+ - Add ` --binary ` /` -b ` on Windows for binary output. To get ` \n ` instead of ` \r\n ` line endings. @nicowilliams 0dab2b1
55
57
- Add ` --raw-output0 ` for NUL (zero byte) separated output. @asottile @pabs3 @itchyny #1990 #2235 #2684
56
58
57
59
``` sh
@@ -63,9 +65,11 @@ Full commit log can be found at <https://github.com/jqlang/jq/compare/jq-1.6...j
63
65
a
64
66
b
65
67
c
66
- $ jq -n --raw-output0 ' "a b c", "d\ne\nf"' | xargs -0 printf ' %q\n'
67
- ' a b c'
68
- ' d' $' \n ' ' e' $' \n ' ' f'
68
+ $ jq -n --raw-output0 ' "a b c", "d\ne\nf"' | xargs -0 printf ' [%s]\n'
69
+ [a b c]
70
+ [d
71
+ e
72
+ f]
69
73
# can be used with read -d ''
70
74
$ while IFS= read -r -d ' ' json; do
71
75
> jq ' .name' <<< " $json"
@@ -79,24 +83,28 @@ Full commit log can be found at <https://github.com/jqlang/jq/compare/jq-1.6...j
79
83
80
84
- Fix assert crash and validate JSON for ` --jsonarg ` . @wader #2658
81
85
- Remove deprecated ` --argfile ` option. @itchyny #2768
86
+ - Enable stack protection. @nicowilliams #2801
82
87
83
88
## Language changes
84
89
85
90
- Use decimal number literals to preserve precision. Comparison operations respects precision but arithmetic operations might truncate. @leonid-s-usov #1752
86
91
87
92
``` sh
88
93
# precision is preserved
89
- $ jq -n ' 100000000000000000'
94
+ $ echo ' 100000000000000000' | jq .
90
95
100000000000000000
91
96
# comparison respects precision (this is false in JavaScript)
92
97
$ jq -n ' 100000000000000000 < 100000000000000001'
93
98
true
99
+ # sort/0 works
100
+ $ jq -n -c ' [100000000000000001, 100000000000000003, 100000000000000004, 100000000000000002] | sort'
101
+ [100000000000000001,100000000000000002,100000000000000003,100000000000000004]
94
102
# arithmetic operations might truncate (same as JavaScript)
95
- $ jq -n ' 100000000000000000+ 10'
103
+ $ jq -n ' 100000000000000000 + 10'
96
104
100000000000000020
97
105
```
98
106
99
- - Adds new builtin ` pick(stream) ` to emit a projection of the input object or array. @pkoppstein #2656
107
+ - Adds new builtin ` pick(stream) ` to emit a projection of the input object or array. @pkoppstein #2656 # 2779
100
108
101
109
``` sh
102
110
$ jq -n ' {"a": 1, "b": {"c": 2, "d": 3}, "e": 4} | pick(.a, .b.c, .x)'
@@ -153,7 +161,7 @@ Full commit log can be found at <https://github.com/jqlang/jq/compare/jq-1.6...j
153
161
3
154
162
```
155
163
156
- - Allow use of `$binding` as key in object literals. 8ea4a55 @nicowilliams
164
+ - Allow use of `$binding` as key in object literals. @nicowilliams 8ea4a55
157
165
158
166
```sh
159
167
$ jq -n ' " a" as $key | {$key : 123}'
@@ -172,16 +180,25 @@ Full commit log can be found at <https://github.com/jqlang/jq/compare/jq-1.6...j
172
180
```sh
173
181
$ jq -n ' {" a" : {" b" : 123}} | .a[" b" ]'
174
182
123
175
- # now this works also
183
+ # now this also works
176
184
$ jq -n ' {" a" : {" b" : 123}} | .a.[" b" ]'
177
185
123
178
186
```
179
187
188
+ - Allow dot for chained value iterator `.[]`, `.[]?` @wader #2650
189
+
190
+ ```sh
191
+ $ jq -n ' {" a" : [123]} | .a[]'
192
+ 123
193
+ # now this also works
194
+ $ jq -n ' {" a" : [123]} | .a.[]'
195
+ 123
196
+ ```
197
+
180
198
- Fix try/catch catches more than it should. @nicowilliams #2750
181
199
- Speed up and refactor some builtins, also remove `scalars_or_empty/0`. @muhmuhten #1845
182
200
- Now `halt` and `halt_error` exit immediately instead of continuing to the next input. @emanuele6 #2667
183
201
- Fix issue converting string to number after previous convert error. @thalman #2400
184
- - Make 0 divided by 0 result in NaN consistently. @itchyny #2253
185
202
- Fix issue representing large numbers on some platforms causing invalid JSON output. @itchyny #2661
186
203
- Fix deletion using assigning empty against arrays. @itchyny #2133
187
204
@@ -191,16 +208,25 @@ Full commit log can be found at <https://github.com/jqlang/jq/compare/jq-1.6...j
191
208
[1,0]
192
209
```
193
210
211
+ - Allow keywords to be used as binding name in more places. @emanuele6 #2681
212
+ - Allow using `nan` as NaN in JSON. @emanuele6 #2712
213
+ - Expose a module' s function names in ` modulemeta` . @mrwilson # 2837
214
+ - Fix ` contains/1` to handle strings with NUL. @nicowilliams 61cd6db
194
215
- Fix ` stderr/0` to output raw text without any decoration. @itchyny # 2751
195
216
- Fix ` nth/2` to emit empty on index out of range. @itchyny # 2674
196
217
- Fix ` implode` to not assert and instead replace invalid unicode codepoints. @wader # 2646
197
- - Simpler and faster `transpose`. @pkoppstein #2758
198
- - Allow keywords to be used as binding name in more places. @emanuele6 #2681
199
- - Allow using `nan` as NaN in JSON. @emanuele6 #2712
200
- - Fix indices/1 and rindex/1 in case of overlapping matches in strings. @emanuele6 #2718
201
- - Enable `significand/0`, `gamma/0` and `drem/2` on macOS. @itchyny #2756 #2775
218
+ - Fix ` indices/1` and ` rindex/1` in case of overlapping matches in strings. @emanuele6 #2718
219
+ - Fix ` sub/3` to resolve issues involving global search-and-replace (gsub) operations. @pkoppstein # 2641
220
+ - Fix ` significand/0` , ` gamma/0` and ` drem/2` to be available on macOS. @itchyny # 2756 #2775
221
+ - Fix empty regular expression matches. @itchyny # 2677
222
+ - Fix overflow exception of the modulo operator. @itchyny # 2629
223
+ - Fix string multiplication by 0 (and less than 1) to emit empty string. @itchyny # 2142
202
224
- Fix segfault when using libjq and threads. @thalman # 2546
203
- - Fix sub/3 to resolve issues involving global search-and-replace (gsub) operations. @pkoppstein #2641
225
+ - Fix constant folding of division and reminder with zero divisor. @itchyny # 2797
226
+ - Fix ` error/0` , ` error/1` to throw null error. @emanuele6 # 2823
227
+ - Simpler and faster ` transpose` . @pkoppstein # 2758
228
+ - Simple and efficient implementation of ` walk/1` . @pkoppstein # 2795
229
+ - Remove deprecated filters ` leaf_paths` , ` recurse_down` . @itchyny # 2666
204
230
205
231
# Previous releases
206
232
0 commit comments