Skip to content

chore: bump dev.toonformat:jtoon from 2.0.7 to 3.0.0 - #418

Merged
mgd43b merged 1 commit into
mainfrom
dependabot/gradle/dev.toonformat-jtoon-3.0.0
Oct 22, 2026
Merged

mgd43b merged 1 commit into
mainfrom
dependabot/gradle/dev.toonformat-jtoon-3.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Bumps dev.toonformat:jtoon from 2.0.7 to 3.0.0.

Release notes

Sourced from dev.toonformat:jtoon's releases.

v3.0.0

Release 3.0.0 — Java 21, CycloneDX 3.5.0

v2.0.8

Release 2.0.8

Changelog

Sourced from dev.toonformat:jtoon's changelog.

Changelog

All notable changes to this project will be documented in this file.

This project adheres to Semantic Versioning and follows a Keep a Changelog-like format.

[Unreleased]

[2.0.6] - 2026-10-07

Changed

  • Conformance raised from spec 4.1.2 to 4.3. The 23 conformance fixture files are byte-identical to the spec repository at v4.3.0 (dfbc459, including the four pinned fixture cases).
  • Array-header classification follows §5.2 of spec 4.3: a line whose first unquoted [ precedes its first unquoted colon must match the §6 grammar, or strict mode rejects it (a[1: with an unclosed bracket segment, a[2:]{x} without its colon) while non-strict decoders read it as a key-value line. Any whitespace – space, tab or NBSP – between a key and its bracket segment now prevents array-header interpretation (§5.2, §6, §14.2).
  • Non-strict decoding no longer returns null on invalid input. It applies the leniencies the spec names – such as count mismatches, indentation depth jumps and skipped over-indented lines – and throws IllegalArgumentException wherever the spec names none (§14).

Fixed

  • The encoder no longer drops nested arrays that mix primitives and objects inside list items.

  • A line without an unquoted colon is a scalar line, never a header, and a scalar line outside root primitive position is an error in any mode, including among skipped over-indented lines and as a root scalar followed by other lines (§5, §5.2, §14.2).

  • A [-led line without a well-formed header is a key-value line: a lone bracket stays part of the key, and in non-strict mode a malformed bracket segment such as [03] or [invalid] does too. An unclosed quote in an unquoted key opens a span to the end of the line, so no header follows it (§5.2, §6).

  • Non-strict mode adopts the depth of a jumped first line in objects, lists, tabular rows and keyed entries; an indented first line of the document is over-indented, null and [] included (§8, §14.2).

  • Strict mode rejects a blank line anywhere inside a list's span and an over-indented line under a list item, while non-strict mode keeps a list item's fields after a blank line (§12, §14.2).

  • A field list ends its header line: strict mode rejects inline content after it (items[1]{a}: 1) and a malformed keyless header ([1]{a}}:) instead of dropping what follows, and non-strict mode reads such a line as a key-value pair. A field list spanning the colon ([1]{x:y}) and a keyless header with a field list as a list item (- [1]{a}:) are strict-mode errors that non-strict decoders read as key-value pairs (§6, §14.2).

  • maxArraySize bounds the actual element count of inline, list, tabular and keyed forms in either mode; only the comparison with the declared [N] stays strict-only.

  • Header parsing: empty field entries and malformed nested field groups are rejected, a length beyond the long range still forms a header, and a line below a bare key[N]: header carries no values (§6, §9).

  • Key and value tokens: : 1 decodes as the empty key, \uXXXX escapes with a surrogate or a non-ASCII digit are rejected, a carriage return before CRLF is content, a backslash outside quotes is a literal character (a\: b has the key a\), a list ends at a hyphen without a following space, and tabular rows sit exactly one level below their header in strict mode (§7, §9, §12).

  • Documentation code examples corrected: array headers no longer carry an invalid comma (users[2]{id,name} — comma is implied), tab-delimited examples contain real tab characters instead of spaces, the pipe tabular header declares its field list with pipes (users[2|]{id|name}), the multi-value value catalogs are valid inline arrays, and the README tab output matches the encoder byte-for-byte.

[2.0.5] - 2026-10-03

Fixed

  • Token trimming is now exactly U+0020, as §12 requires. String.trim(), String.isBlank() and String.stripTrailing() also removed tabs and control characters, so key: value<tab> decoded as value, and key: "a"<tab> was accepted even though §7.4 requires the quoted token to end with its closing quote. A trailing tab at the end of a line is now line content. A single U+FEFF at the very start of a document is still stripped as a byte-order mark (§12).
  • Any character after the closing quote of a quoted token is now rejected in key position as well as in value position (§7.4).
  • Root-form discovery starts at the first non-blank line instead of assuming line 0, so a document with leading blank lines is no longer misparsed (§5).
  • An unquoted key token may contain spaces. foo bar[2]: 1,2 now decodes with the literal key foo bar, which §7.4 requires of decoders. Whitespace between a key and its bracket segment (foo [2]:) remains a header syntax error (§6, §14.2).
  • A root string value starting with U+FEFF is now quoted, as §7.2 requires; unquoted, a conforming decoder would strip it as a byte-order mark and silently lose the character (§12). This is the one normative behaviour change in spec 4.1.2.

Changed

  • Conformance raised from spec 4.1.1 to 4.1.2, which is a single normative change: a root primitive starting with U+FEFF must be quoted (§7.2). On top of that, decoder strictness was tightened in five places where the implementation accepted input the spec rejects — token trimming, quoted-token boundaries, root-form discovery, header key tokens and the [N] length marker. The full conformance suite from 4.1 (canonical number formatting, BOM stripping, comment pre-pass §5.1, strict header validation §5/§6/§7.3/§7.4, nested field groups in tabular arrays §9.3, keyed tabular form §9.5/§10, non-strict tab leniency §12) carries over unchanged and remains green. The 23 conformance fixture files are byte-identical to the spec repository at tag v4.1.2.
  • Upstream [PR #201](toon-format/toon-java#201) integrated (squash merge). Conflicts in KeyDecoder, ListItemDecoder and ValueDecoder were resolved additively, keeping both the validateQuotedTokenBoundary check from #201 and the validateKeyHasNoUnquotedBrackets check from #200. DecodeHelper.trimSpaces() remains the canonical token trimmer.
  • The targeted specification version is now declared as toon-spec: 4.1.2 in the README, as §13 recommends.

Documentation

  • README.md: spec badge updated to v4.1.2; corrected a stale quick-start example that showed the non-conforming legacy empty-array form preferences[0]: instead of preferences: [] (§9.1).
  • docs/FORMAT.md audited against the spec and corrected. The most serious defect was a flat contradiction: the document stated "TOON does not support comments", while §5.1 defines full-line comments and the decoder has always implemented the comment pre-pass. Also corrected: empty arrays (§9.1, was the stale items[0]: form), number notation (§2, was stated as an absolute MUST where the spec only requires canonical decimal inside the canonical range and permits exponent notation outside it), nested-uniform tabular columns (§9.3), decoder key permissiveness (§7.4), and the quoting triggers for a leading - or # and for a root primitive starting with U+FEFF (§7.2).

... (truncated)

Commits
  • aaee6f5 keep xml-input.md, add 3.0.0 release
  • e783e4a remove .omo and .out-of-scope
  • 5dc5edc auto: update dependency verification metadata [skip ci]
  • b4eaf53 java 21 + cyclonedx 3.5.0
  • 010d8b4 java 21 on main
  • 9289f21 docs: update version to 2.0.8 in README
  • 2ae262c refactor: drop decoder paths that spec 4.4 made unreachable (#221)
  • 2acf9a6 docs: update version to 2.0.7 in README
  • See full diff in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Oct 19, 2026
@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Test Results

4 552 tests   4 546 ✅  4m 40s ⏱️
  364 suites      6 💤
  364 files        0 ❌

Results for commit 86f2a30.

♻️ This comment has been updated with latest results.

@github-actions

Copy link
Copy Markdown
Contributor

Major version update detected - requires manual review before merge.

This update may contain breaking changes. Please:

  1. Review the changelog/release notes
  2. Verify CI passes
  3. Manually approve and merge when ready

Bumps [dev.toonformat:jtoon](https://github.com/toon-format/toon-java) from 2.0.7 to 3.0.0.
- [Release notes](https://github.com/toon-format/toon-java/releases)
- [Changelog](https://github.com/toon-format/toon-java/blob/main/CHANGELOG.md)
- [Commits](toon-format/toon-java@v2.0.7...v3.0.0)

---
updated-dependencies:
- dependency-name: dev.toonformat:jtoon
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/gradle/dev.toonformat-jtoon-3.0.0 branch from ee77340 to 86f2a30 Compare October 19, 2026 08:55
@github-actions

Copy link
Copy Markdown
Contributor

Major version update detected - requires manual review before merge.

This update may contain breaking changes. Please:

  1. Review the changelog/release notes
  2. Verify CI passes
  3. Manually approve and merge when ready

@mgd43b
mgd43b merged commit 0ef00c6 into main Oct 22, 2026
10 of 11 checks passed
@mgd43b
mgd43b deleted the dependabot/gradle/dev.toonformat-jtoon-3.0.0 branch October 22, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant