Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency jq to v1.7 #363

Merged
merged 1 commit into from Sep 8, 2023
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 8, 2023

Mend Renovate

This PR contains the following updates:

Package Update Change
jq minor 1.6 -> 1.7

Release Notes

stedolan/jq (jq)

v1.7: jq 1.7

Compare Source

After a five year hiatus we're back with a GitHub organization, with new admins and new maintainers who have brought a great deal of energy to make a long-awaited and long-needed new release. We're very grateful for all the new owners, admins, and maintainers. Special thanks go to Owen Ou (@​owenthereal) for pushing to set up a new GitHub organization for jq, Stephen Dolan (@​stedolan) for transferring the jq repository to the new organization, @​itchyny for doing a great deal of work to get the release done, Mattias Wadman (@​wader) and Emanuele Torre (@​emanuele6) for many PRs and code reviews. Many others also contributed PRs, issues, and code reviews as well, and you can find their contributions in the Git log and on the closed issues and PRs page.

What's Changed

Since the last stable release many things have happened:

Full commit log can be found at jqlang/jq@jq-1.6...jq-1.7 but here are some highlights:

CLI changes

this would make "field" bold yellow (1;33, the last value)

$ JQ_COLORS="0;90:0;37:0;37:0;37:0;32:1;37:1;37:1;33" ./jq -n '{field: 123}'
{
"field": 123
}


- Change the default color of null to Bright Black. @​itchyny #​2824
- Respect `NO_COLOR` environment variable to disable color output. See <https://no-color.org> for details. @&#8203;itchyny #&#8203;2728
- Improved `--help` output. Now mentions all options and nicer order. @&#8203;itchyny @&#8203;wader #&#8203;2747 #&#8203;2766 #&#8203;2799
- Fix multiple issues of exit code using `--exit-code`/`-e` option. @&#8203;ryo1kato #&#8203;1697

```sh

### true-ish last output value exits with zero
$ jq -ne true ; echo $?
true
0

### false-ish last output value (false and null) exits with 1
$ jq -ne false ; echo $?
false
1

### no output value exists with 4
$ jq -ne empty ; echo $?
4

will output a zero byte after each output

$ jq -n --raw-output0 '1,2,3' | xxd
0000000: 3100 3200 3300 1.2.3.

can be used with xargs -0

$ jq -n --raw-output0 '"a","b","c"' | xargs -0 -n1
a
b
c
$ jq -n --raw-output0 '"a b c", "d\ne\nf"' | xargs -0 printf '[%s]\n'
[a b c]
[d
e
f]

can be used with read -d ''

$ while IFS= read -r -d '' json; do

jq '.name' <<< "$json"
done < <(jq -n --raw-output0 '{name:"a b c"},{name:"d\ne\nf"}')
"a b c"
"d\ne\nf"

also it's an error to output a string containing a NUL when using NUL separator

$ jq -n --raw-output0 '"\u0000"'
jq: error (at ): Cannot dump a string containing NUL with --raw-output0 option


- Fix assert crash and validate JSON for `--jsonarg`. @&#8203;wader #&#8203;2658
- Remove deprecated `--argfile` option. @&#8203;itchyny #&#8203;2768
- Enable stack protection. @&#8203;nicowilliams #&#8203;2801

#### Language changes

- Use decimal number literals to preserve precision. Comparison operations respects precision but arithmetic operations might truncate. @&#8203;leonid-s-usov #&#8203;1752

```sh

### precision is preserved
$ echo '100000000000000000' | jq .
100000000000000000

### comparison respects precision (this is false in JavaScript)
$ jq -n '100000000000000000 < 100000000000000001'
true

### sort/0 works
$ jq -n -c '[100000000000000001, 100000000000000003, 100000000000000004, 100000000000000002] | sort'
[100000000000000001,100000000000000002,100000000000000003,100000000000000004]

### arithmetic operations might truncate (same as JavaScript)
$ jq -n '100000000000000000 + 10'
100000000000000020
  • Adds new builtin pick(stream) to emit a projection of the input object or array. @​pkoppstein #​2656 #​2779

    $ jq -n '{"a": 1, "b": {"c": 2, "d": 3}, "e": 4} | pick(.a, .b.c, .x)'
    {
      "a": 1,
      "b": {
        "c": 2
      },
      "x": null
    }
  • Adds new builtin debug(msgs) that works like debug but applies a filter on the input before writing to stderr. @​pkoppstein #​2710

    $ jq -n '1 as $x | 2 | debug("Entering function foo with $x == \($x)", .) | (.+1)'
    ["DEBUG:","Entering function foo with $x == 1"]
    ["DEBUG:",2]
    3
    $ jq -n '{a: 1, b: 2, c: 3} | debug({a, b, sum: (.a+.b)})'
    ["DEBUG:",{"a":1,"b":2,"sum":3}]
    {
      "a": 1,
      "b": 2,
      "c": 3
    }
  • Adds new builtin scan($re; $flags). Was documented but not implemented. @​itchyny #​1961

look for pattern "ab" in "abAB" ignoring casing

$ jq -n '"abAB" | scan("ab"; "i")'
"ab"
"AB"


- Adds new builtin `abs` to get absolute value. This potentially allows the literal value of numbers to be preserved as `length` and `fabs` convert to float. @&#8203;pkoppstein #&#8203;2767
- Allow `if` without `else`-branch. When skipped the `else`-branch will be `.` (identity). @&#8203;chancez @&#8203;wader #&#8203;1825 #&#8203;2481

```sh

### convert 1 to "one" otherwise keep as is
$ jq -n '1,2 | if . == 1 then "one" end'
"one"
2

### behaves the same as
$ jq -n '1,2 | if . == 1 then "one" else . end'
"one"
2

### also works with elif
$ jq -n '1,2,3 | if . == 1 then "one" elif . == 2 then "two" end
"one"
"two"
3
  • Allow use of $binding as key in object literals. @​nicowilliams 8ea4a55

    $ jq -n '"a" as $key | {$key: 123}'
    {
      "a": 123
    }

previously parentheses were needed

$ jq -n '"a" as $key | {($key): 123}'
{
"a": 123
}


- Allow dot between chained indexes when using `.["index"]` @&#8203;nicowilliams #&#8203;1168

```sh
$ jq -n '{"a": {"b": 123}} | .a["b"]'
123

### now this also works
$ jq -n '{"a": {"b": 123}} | .a.["b"]'
123
  • Allow dot for chained value iterator .[], .[]? @​wader #​2650

    $ jq -n '{"a": [123]} | .a[]'
    123

now this also works

$ jq -n '{"a": [123]} | .a.[]'
123


- Fix try/catch catches more than it should. @&#8203;nicowilliams #&#8203;2750
- Speed up and refactor some builtins, also remove `scalars_or_empty/0`. @&#8203;muhmuhten #&#8203;1845
- Now `halt` and `halt_error` exit immediately instead of continuing to the next input. @&#8203;emanuele6 #&#8203;2667
- Fix issue converting string to number after previous convert error. @&#8203;thalman #&#8203;2400
- Fix issue representing large numbers on some platforms causing invalid JSON output. @&#8203;itchyny #&#8203;2661
- Fix deletion using assigning empty against arrays. @&#8203;itchyny #&#8203;2133

```sh

### now this works as expected, filter out all values over 2 by assigning empty
$ jq -c '(.[] | select(. >= 2)) |= empty' <<< '[1,5,3,0,7]'
[1,0]

Full Changelog: jqlang/jq@jq-1.7rc2...jq-1.7


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot merged commit da27a09 into master Sep 8, 2023
2 checks passed
@renovate renovate bot deleted the renovate/jq-1.x branch September 8, 2023 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants