fix yaml parser, stream mode parity with jq, SIGPIPE handling, version bump#48
Merged
Conversation
…ersion to v0.3.4
Replace goccy/go-yaml with go.yaml.in/yaml/v4 (the actively maintained
successor), which correctly parses multiline plain scalars in sequences
that goccy rejected with "value is not allowed in this context". Add a
regression test for the failing case. Use SetIndent(2) on the encoder to
preserve the existing 2-space indentation in YAML output.
Fix --stream output to match jq --stream exactly: emit one compact JSON
line per element instead of pretty-printed blocks, and emit [path, []]
/ [path, {}] for empty arrays and objects (previously silently dropped).
Catch SIGPIPE and exit 0 so pipelines like `qq --stream | grep -q foo`
don't report failure when the downstream consumer exits early.
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace goccy/go-yaml with go.yaml.in/yaml/v4 (the actively maintained successor to the standard go yaml library), which correctly parses multiline plain scalars in sequences that goccy rejected with "value is not allowed in this context". Add a regression test for the failing case. Use SetIndent(2) on the encoder to preserve the existing 2-space indentation in YAML output.
Fix --stream output to match jq --stream exactly: emit one compact JSON line per element instead of pretty-printed blocks, and emit [path, []] / [path, {}] for empty arrays and objects (previously silently dropped).
Catch SIGPIPE and exit 0 so pipelines like
qq --stream | grep -q foodon't report failure when the downstream consumer exits earlyChanges
🛠️ Code Changes
🐛 Testing
📄 Documentation
Additional Notes