Skip to content

Releases: azohra/yaml.sh

YAML.sh v1.3.0 — tiny YAML programming

Choose a tag to compare

@azohra azohra released this 02 Aug 08:08
v1.3.0
8581fcc

YAML.sh remains one portable /bin/sh + AWK file, now with a substantially richer yq-shaped language and safer edits.

Highlights

  • Map, entries, variables, dynamic indexes, reduce, sorting, string helpers, and deep merge
  • Broader YAML syntax, Unicode escapes, multiline flow collections, and explicit block-scalar indentation
  • Multi-document in-place transforms
  • Presentation-preserving scalar updates with atomic replacement
  • 64 behavioral tests across macOS, Ubuntu, and BusyBox AWK
  • A strict SemVer policy: compatible capability work stays in v1.x

The same compatible code was briefly labeled v2.0.0. v1.3.0 is the canonical release because no v1 public contract was broken.

YAML.sh v1.2.0 — the tiny parser writes back

Choose a tag to compare

@azohra azohra released this 02 Aug 06:49
v1.2.0
f241e6e

Version 1.2 turns YAML.sh from a read-only query engine into a writable YAML transformer—still one portable /bin/sh + AWK file.

Highlights:

  • recursive descent (..) and optional traversal (?)
  • array and object construction plus null input (-n)
  • arithmetic, string/sequence concatenation, and shallow mapping +
  • assignment (=), relative update (|=), compound updates, missing-path creation, and del(...)
  • semantic YAML output with -y / -o=yaml
  • permission-preserving in-place updates with -i
  • multi-document in-place safety: reject before replacement instead of dropping documents
  • 57 behavioral tests across macOS, Ubuntu, BusyBox AWK, and POSIX shell
  • 18 representative v1.2 expressions matched yq v4.53.3 byte-for-byte in JSON mode

The honest bit: YAML output preserves semantic structure, not comments or presentation style. Variables, reducers, dynamic keys, deep merge, style/comment operators, file operators, and non-YAML codecs remain outside this tiny, mischievous subset.

Docs: https://yaml.azohra.com/docs/#/queries

YAML.sh v1.1.0 — now the nodes can flow

Choose a tag to compare

@azohra azohra released this 02 Aug 06:19
v1.1.0
823e96f

Version 1.1 adds a focused, read-only yq-style expression engine over the YAML.sh node graph.

Highlights:

  • sequence and mapping iteration with []
  • pipes and multi-result node streams
  • select filters with comparisons and booleans
  • // defaults for missing, null, and false values
  • length, keys, has, kind, and yq-compatible type
  • 47 behavioral tests across macOS, Ubuntu, BusyBox AWK, and POSIX shell
  • 25 representative expressions matched yq v4.53.3 exactly in JSON mode

Expressions remain read-only in v1.1. Mutation and YAML emission are next.

Docs: https://yaml.azohra.com/docs/#/queries

YAML.sh v1.0.0 — yq energy, zero baggage

Choose a tag to compare

@azohra azohra released this 02 Aug 05:36
v1.0.0
b85e7b5

YAML.sh v1 is an intentionally breaking, ground-up rebuild: one portable /bin/sh script with an embedded AWK parser and a yq-style query language.

Highlights:

  • real mapping, sequence, scalar, and alias node graph
  • direct paths, JSON collection output, types, tags, source lines, AST, and events
  • anchors, aliases, merge keys, directives, explicit scalar keys, and multiple documents
  • tested on macOS AWK, Ubuntu AWK, BusyBox AWK, and POSIX shell syntax
  • rebuilt website, docs, installer, and an honest support contract

Start: https://yaml.azohra.com/docs/#/getting-started
YAML support: https://yaml.azohra.com/docs/#/supported_yml
Migration guide: https://yaml.azohra.com/docs/#/migration

The standalone ysh script is attached below.

v0.4.0

Choose a tag to compare

@azohra azohra released this 02 Aug 04:08
v0.4.0
2921874

Added

  • Backward scalar, mapping, and sequence anchors and aliases with document scoping and recursion checks.
  • Mapping merge keys from aliases, inline alias lists, and flow mappings with YAML merge precedence.
  • %YAML and %TAG directives, scalar tag syntax, and explicit scalar mapping keys.
  • --type inspection for core scalar types while preserving text output.
  • An advanced conformance fixture plus explicit rejection tests for every documented boundary.

Fixed

  • Reject undefined, forward, recursive, and non-mapping merge aliases with actionable errors.
  • Reject duplicate keys and ambiguous flattened query paths instead of returning competing values.
  • Reject unknown directives, collection-valued complex keys, block merge lists, and multiline flow collections instead of misparsing them.

Changed

  • Buffer parser records so merge precedence and explicit overrides are deterministic.
  • Replace the blanket feature disclaimer with a tested support contract and precise intentional limitations.
  • Update GitHub Actions checkout to v7 and bound CI jobs to ten minutes.

v0.3.0

Choose a tag to compare

@azohra azohra released this 02 Aug 03:43
v0.3.0
e35fc15

Added

  • Nested flow mappings and flow lists.
  • Literal and folded multiline scalar values.
  • Indentationless block lists.
  • Source line lookup with --line.
  • Tests for every previously open issue, CRLF input, quoted values, comments, malformed YAML, and indexes above 9.
  • GitHub Actions coverage on Ubuntu and macOS.

Fixed

  • Preserve and decode quotes, backslashes, tabs, and newlines in scalar values.
  • Treat query paths literally instead of as regular expressions.
  • Count and read lists with multi-digit indexes.
  • Reject malformed YAML instead of silently dropping the parser validation rules during the build.
  • Report missing CLI arguments and unsafe unquoted transpiled input clearly.
  • Update the installer and documentation to the current release.

Changed

  • The standalone build now embeds the readable AWK parser without the lossy minification step.
  • -T is documented as accepting one quoted intermediate-data argument.
  • The default GitHub branch and all three Cloudflare Pages production branches are now main.

v0.2.1

Choose a tag to compare

@fvumbaca fvumbaca released this 24 Feb 02:51
60e1e4a

Bug Fixes:

  • the -f flag now errors correctly when passed a file path that does not exist.
  • the -h flag does not return an error

v0.2.0

Choose a tag to compare

@fvumbaca fvumbaca released this 13 Jun 01:37

Improvements to query language.

v0.1.5

Choose a tag to compare

@fvumbaca fvumbaca released this 20 Dec 19:57
v0.1.5 - make install can now be directed to support brew

v0.1.4

Choose a tag to compare

@fvumbaca fvumbaca released this 12 Dec 03:53
v0.1.4 - Now supports stdin as default input method