1
0
mirror of https://github.com/stedolan/jq.git synced 2024-05-11 05:55:39 +00:00

363 Commits

Author SHA1 Message Date
78774647e1 docs: fix seriously dangerous download instructions for Arch Linux
The current instructions tell users to perform two actions:
- update the package database
- install the jq package

The only thing users need to or should be doing is actually installing
the jq package -- regardless of which version is being installed.
Guidelines on how to perform system updates are massively out of scope.

In the case of partially performing a system update as a prerequisite
for installing jq, the official guidance from Arch Linux is not to do
this: partial updates are not supported, we refuse to support them, and
anyone who does try to perform them anyway is assumed to know so much
about their system that they clearly do not ever need help from anyone
else (which is a good thing since they won't get it). The result is a
frankensteined system that can only ever be supported by the person who
frankensteined it to begin with. The only reason the package manager
even allows it to occur in the first place is because other
distributions using pacman might have different LTS policies, and
because it would prevent expert users from being in control of their
system, as per the traditional Unix philosophy:

"Unix was not designed to stop you from doing stupid things, because
that would also stop you from doing clever things."

Consequences of performing partial updates without understanding the
ramifications in extensive detail can include breaking the partially
updated application (jq), breaking any application that shares a mutual
dependency with the partially updated application (which jq is *lucky*
to only depend on the ever-backwards-compatible glibc), or breaking the
entire operating system by leaving armed traps behind for the next time
a `pacman -S new-package` is executed and thereby breaks *its* cascading
dependencies.

See:
https://wiki.archlinux.org/index.php/System_maintenance#Partial_upgrades_are_unsupported
2019-07-21 14:40:47 -04:00
8d9817d2f7 clarify filter usage
The current paragraph is not complete, since a digit is not a special character.

Changing it to:

    If the key contains special characters or starts with a digit,
    you need to surround it with double quotes like this:
    `."foo$"`, or else `.["foo$"]`.
2019-07-08 21:02:43 -04:00
0dab2b18d7 Add -b / --binary option for Windows 2019-03-24 23:23:16 -05:00
a4756fde3f Cleanup leftover references to ruby 2019-02-26 11:10:38 -06:00
53a3f47076 Remove ruby dependency from mantests 2019-02-26 11:10:38 -06:00
175dbc4e25 Remove ruby dependency from manpage build 2019-02-26 11:10:38 -06:00
c1f11855e3 Remove ruby dependency from website build 2019-02-26 11:10:38 -06:00
048acee39b Fix if-then-else example formatting 2019-02-20 20:03:26 -06:00
8a02b2c9c1 Document optional else clause of if 2019-02-20 20:03:26 -06:00
18ac789d6d FIX if-then-else example
"(.+)" doesn't match new line characters so the link generated for [if-then-else](90bc29c1b5/docs/content/3.manual/v1.5/manual.yml (L1804)) doesn't work
2019-02-07 11:08:44 -06:00
4b4fefa254 Merge pull request #1774 from dooglus/patch-1
Fix grammar typo.
2019-01-05 16:04:30 -05:00
8ea4a5584e Allow variable refs as object keys {$key:value}
Users are often surprised by the requirement to parenthesize any
non-trivial object key expressions in object constructors.  E.g.,
{"a"+"b":1}.  This commit adds one more kind of key expression besides
literals and idents: variable references.

A common use case for this is jq programs as JSON templates to fill in
with variables computed from inputs or passed in on the command-line.
E.g., {some_key:$value}.  Now users can also use, e.g., {$key:$value}.

This and the restrictions on key and value expressions in object
constructors are now clarified a bit in the documentation.
2018-12-10 21:54:59 -06:00
9caa1ba146 Fix grammar typo.
'operator' needs to be plural here.
2018-11-29 05:44:05 -08:00
2f2d05b087 Minor website fixes for 1.6 2018-11-02 08:15:18 -04:00
3daecb246a Update website with details for jq-1.6 2018-11-01 21:48:34 -04:00
cd4f61aee6 Fix website whitespace 2018-10-21 23:28:43 -04:00
39a3e2c46f Add documentation for destructuring alternation 2018-10-21 23:28:43 -04:00
ae11f111a5 Fix "provides" typo 2018-02-23 14:10:47 -06:00
bd34b8dd2e fix FreeBSD install instructions 2018-01-04 15:50:20 -06:00
b4742c1257 Added rawfile
In passing, clean remnants of argfile from slurpfile docs.
2017-12-11 12:17:17 -06:00
9a4576e756 Revert "reduce: handle empty updates (fix #1313)"
This reverts commit e24af3c78e78a3aab05a2800d825d56f1d842b1b.

While the semantics are desirable, there is no way to implement them
efficiently.  The reason is that in order to handle backtracking (empty)
from the state update expression, we have to retain a reference to the
reduction state value in order to restore it upon backtracking.
Retaining a reference to the reduction state kills performance by
causing lots of additional memory allocations and garbage because the
input to the update expression will always have at least two references,
thus no changes to it can be done in-place, and all changes end up being
CoW changes.

Avoiding this is the very reason for the LOADVN instruction (leaving
`null` in the variable loaded from).
2017-12-11 11:20:16 -06:00
0c9eacedaa Actually fix the strptime tests
This has been a complicated issue to fix for a number of reasons.
The core of it is that the behavior is different between different
versions of macOS, some of which set possible-but-incorrect values.

This commit addresses the issue by always using our computation for
tm_wday and tm_yday on macOS. As a side-effect, strptime format
strings that specify %u and %j will no longer work on macOS.
2017-11-29 20:47:56 -05:00
bdaddcf107 Typo correction
Suppresion -> Suppression
2017-11-22 13:47:35 -05:00
c538237f4e Deal with strptime() on OS X and *BSD (fix #1415)
strptime() on OS X and *BSDs (reputedly) does not set tm_wday and
tm_yday unless corresponding %U and %j format specifiers were used.
That can be... surprising when one parsed year, month, and day anyways.
Glibc's strptime() conveniently sets tm_wday and tm_yday in those cases,
but OS X's does not, ignoring them completely.

This commit makes jq compute those where possible, though the day of
week computation may be wrong for dates before 1900-03-01 or after
2099-12-31.
2017-05-21 16:24:48 -05:00
6d89e297fe Add JQ_COLORS env var for color config (fix #1252) 2017-04-29 14:00:52 -04:00
4b4cf789e0 def isempty(g) # Testing 'isempty(empty)' at line number 1364 2017-04-15 16:45:00 -05:00
405071337d Don't require java to build gh-pages 2017-03-31 18:48:28 -04:00
151b494382 Add collect example with pipeline 2017-03-31 18:48:05 -04:00
12f74b226e Add missing close-backtick in docs 2017-03-30 22:23:47 -04:00
8ea21a54ad Add halt, halt_error builtins (fix #386) 2017-02-26 16:34:56 -06:00
6bac4ed059 Document stderr 2017-02-26 16:34:56 -06:00
3504bd9a2a Add $ENV builtin variable to access environment 2017-02-26 00:39:24 -06:00
ef87010059 Document $ARGS and friends 2017-02-25 19:21:06 -06:00
27c29aeb7b Document localtime and strflocaltime 2017-02-23 23:39:24 -06:00
607a9e3912 Improve manual section on assignment forms 2017-02-23 22:17:54 -06:00
9b2179089b Improve manual 2017-02-15 11:48:39 -06:00
1c806b74ea Add builtins builtin 2017-02-13 11:36:20 -05:00
e0b784ac6d Add @base64d for decoding base64 #47 2017-02-12 16:03:59 -05:00
597c1f6667 Add more missing math functions 2017-02-04 00:11:46 -06:00
6f9646a44f Improve docs somewhat, inspired by #1326 2017-01-30 14:11:05 -06:00
bd7b48c1b9 Make |= delete LHS when RHS is empty (Fix #1314)
Now that #1313 is fixed, |= no longer outputs null when the RHS update
expression outputs empty.

When a user wants to keep the current value of the LHS they would have
the RHS update expression output `.`, so having `empty` achieve the same
thing would be redundant.  The obvious thing to do is to delete the LHS
when the RHS update outputs `empty` (i.e., doesn't output any values).

It's reasonable to think that existing programs won't be broken by this
change, because reduce and |= not handling empty well is clearly a bug.
(Though it's possible that some programs were using empty to quickly
terminate reduce or |=, it's not likely.  They should use label/break
instead.)

Prior to this change |= would use the _last_ value output by the RHS
update expression.  With this change |= will use the _first_ value
instead.  This change _is_ a minor backwards-incompatible change.  It
may or may not be acceptable; we'll see.  It is a useful change in that
it makes |= faster when the update expression produces multiple values.
2017-01-30 14:11:05 -06:00
7bdf3a39ad Add SQL-style operators (#1322) 2017-01-30 14:11:05 -06:00
e24af3c78e reduce: handle empty updates (fix #1313) 2017-01-30 14:11:05 -06:00
9c4238c2f6 Typo fixed
simply -> simple
2017-01-23 16:21:37 -06:00
114ac72169 Documentation clarification suggestions 2017-01-23 15:48:44 -06:00
a10d7fbb02 Update download instructions for Arch
jq has been in the community repo for [just over a year now][0].

[0]: https://projects.archlinux.org/svntogit/community.git/commit/trunk?h=packages/jq&id=8d5e06065bc92bf56ea651970c9bda07fb545554
2017-01-23 15:46:17 -06:00
f33af0b16a Typo: s/more/mode/ in --seq 2017-01-23 15:45:07 -06:00
0d177d240d yum has been replaced with dnf as of f22
https://fedoraproject.org/wiki/Changes/ReplaceYumWithDNF
2015-11-26 10:48:06 -05:00
79f9ecd150 Fix manual signature for split (non-regex) 2015-11-15 21:43:38 +01:00
e17ccf2297 Support numbers and boolean in join (fix #930) 2015-10-25 12:40:15 -07:00