Skip to content

Bump serde-saphyr from 0.0.6 to 1.2.0 - #450

Merged
github-actions[bot] merged 2 commits into
mainfrom
dependabot/cargo/serde-saphyr-0.0.29
Sep 19, 2026
Merged

github-actions[bot] merged 2 commits into
mainfrom
dependabot/cargo/serde-saphyr-0.0.29

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 28, 2026 •

Copy link
Copy Markdown
Contributor

Bumps serde-saphyr from 0.0.6 to 1.2.0.

Release notes

Sourced from serde-saphyr's releases.

1.2.0 It's all about !!tags this time

This release focuses on enhanced tag support.

  • Implemented tag capturing (#183). Applications can use custom tags to express units, priorities, accessibility, or other application-specific semantics for a node. This is supported by new Tagged<T> wrapper that is similar to Commented<T>.
  • Unsupported tags can now be rejected rather than ignored (new option reject_unsupported_tags, #180). This aligns the behavior with ruamel.yaml that rejects tags for which it has no constructor (serde-saphyr does not construct this way) that caused discussion on prek.
  • Clearly wrongly placed tags like !!int [1] or !!map [1] are now an error.
  • Documentation was revised to make sure all examples compile (are not fragments).

1.1.0 Maintenance release

Added

  • Added granit-parser resource limits to Budget (#172):

    • max_buffered_comment_events (default: 32)
    • simple_key_max_lookahead (default: 1,024 characters)
    • flow_nesting_limit (default: 255)

    The limits are applied to parsers created for strings, readers, standalone budget checks, and included YAML sources. When the serde_derived_types feature is enabled, deserializing an older Budget representation that omits these fields uses the documented defaults.

Fixes

  • Fixed enums tags for struct variants (#177)
  • Improved error message wording (#178)

1.0.1 maintenance release

  • Fix #170 regression on local type tags
  • By fixing granit-parser (use its release 1.0.1), explicitly fix #169 (large scalar deserialization performance regression)

This release is fully API compatible with 1.0.0 and must be a drop-in replacement.

1.0.0 - first real release

From this release onward, we are adopting the 1.x.x semantic versioning (SemVer) scheme. This means that API changes will be clearly reflected in the version number: the major version indicates breaking changes, the minor version indicates backward-compatible additions, and the patch version indicates backward-compatible fixes. The current compatibility status is indicated by the accompanying badge.

This release adds some #[track_caller] and #[must_use] annotations where looks reasonable. There are not many other changes that is exactly the point: the crate seems serving community well enough.

1.0.0-rc.1 release preview

From this release onward, we are adopting the 1.x.x semantic versioning (SemVer) scheme. This means that API changes will be clearly reflected in the version number: the major version indicates breaking changes, the minor version indicates backward-compatible additions, and the patch version indicates backward-compatible fixes. The current compatibility status is indicated by the accompanying badge.

Some breaking changes were made at this point because this is the last good time to streamline the API. Please raise any issues you find with the API changes, or if you would like to propose something. The goal of the release preview is exactly not to go 2.x.x next week after release.

  • Options, SerializerOptions, Budget, and AliasLimits are now #[non_exhaustive]. Construct them with options!, ser_options!, budget!, and alias_limits!.
  • Removed the deprecated to_writer and to_writer_with_options APIs. Use to_fmt_writer* for fmt::Write or to_io_writer* for io::Write.
  • API compatibility check no guards compatibility with 1.0.0

Also

  • Fix core tag enforcement. In the previous version, !!str 42 is accepted as i32(42), and !!int true is accepted as bool(true). Core tag handling is now hardened, and such constructs no longer pass.
  • Fix: budget callbacks were sometimes not delivered on immediate breaches

0.0.29 Hardening release

... (truncated)

Changelog

Sourced from serde-saphyr's changelog.

1.2.0 Maintenance release

Changed

  • Folded property-interpolation depth and work limits into Budget; property resource-limit failures are now reported through Error::Budget and BudgetBreach.
  • Added the opt-in Options::reject_unsupported_tags strict mode. It rejects explicitly tagged scalar, sequence, and mapping nodes when their tag is unknown to serde-saphyr; the default remains permissive for compatibility with custom tagged enums. YAML 1.1 !!merge and !!value are accepted in this mode only as the exact scalar mapping keys << and =, respectively, while robotics-only !degrees and !radians require both the robotics crate feature and angle_conversions, and !include requires both the include crate feature and a configured resolver.
  • Enforced the scalar, sequence, or mapping node kinds required by recognized tags even when reject_unsupported_tags is disabled.
  • Hardened serializer indentation handling: indent_step is now limited to 1..=64, all serializer entry points validate it, and indentation arithmetic returns an error instead of overflowing. We do not consider this breaking because values outside this range does not look sane.
  • Validated custom anchor-generator names before emission. Names must be 1–256 bytes and cannot contain whitespace, control characters, or YAML flow punctuation; unsupported names now return a serialization error.

Fixes

  • Avoided unnecessary quotes around string keys and values containing an inline #, such as a#b, while retaining quotes for leading or whitespace-separated hashes. Borrowed from commit 1119a54 under the terms of the Apache/MIT licenses. When property interpolation is configured, newly plain values such as ${NAME}#fragment can interpolate; use quote_all to preserve literal values.
  • Recognized explicit YAML 1.1 !!merge keys, including verbatim tags and %TAG-expanded handles, everywhere implicit << merge keys are supported.
  • Recognized the YAML 1.1 !!value tag while intentionally treating it as a no-op annotation.
  • Accepted valid zero-indented root folded block scalars, including #-prefixed content lines.
  • Fixed externally tagged typetag trait-object deserialization by consuming the closing mapping event when a Serde map visitor returns after its final key/value pair, preventing a false "multiple YAML documents" error.
  • Rejected non-UTF-8 canonical include and root-file paths before resolver policy checks and source identity handling, preventing lossy path collisions and policy bypasses on Unix.
  • Reported alias-use locations as primary for unsupported-tag and budget failures during replay, while retaining the anchor-definition locations as secondary context.

Testing

  • Reviewed yaml test suite, made sure all 350 active IDs and all 402 active cases are represented and documented we use YAML Test Suite v2022-01-17.
  • property test with 1,024 generated cases to check the round trip.
  • added tests for typetag.

1.1.0 Maintenance release

... (truncated)

Commits

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

References

@dependabot dependabot Bot added cargo Dependabot channel for Rust crate updates. dependencies Dependency updates, applied to every Dependabot pull request. labels Jul 28, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) July 28, 2026 00:34
codescene-access[bot]

This comment was marked as outdated.

@dependabot
dependabot Bot force-pushed the dependabot/cargo/serde-saphyr-0.0.29 branch from dd1a939 to 253f305 Compare July 28, 2026 17:55
codescene-access[bot]

This comment was marked as outdated.

@dependabot
dependabot Bot force-pushed the dependabot/cargo/serde-saphyr-0.0.29 branch from 253f305 to e4fb5a9 Compare July 30, 2026 03:34
codescene-access[bot]

This comment was marked as outdated.

@dependabot
dependabot Bot force-pushed the dependabot/cargo/serde-saphyr-0.0.29 branch from e4fb5a9 to d25240c Compare August 5, 2026 22:21
codescene-access[bot]

This comment was marked as outdated.

@dependabot
dependabot Bot force-pushed the dependabot/cargo/serde-saphyr-0.0.29 branch from d25240c to 2ba42f3 Compare August 13, 2026 23:41
codescene-access[bot]

This comment was marked as outdated.

@dependabot dependabot Bot changed the title Build(deps): bump serde-saphyr from 0.0.6 to 0.0.29 Build(deps): bump serde-saphyr from 0.0.6 to 1.0.0 Aug 16, 2026
@dependabot
dependabot Bot force-pushed the dependabot/cargo/serde-saphyr-0.0.29 branch from 2ba42f3 to 9336775 Compare August 16, 2026 02:14
codescene-access[bot]

This comment was marked as outdated.

@dependabot
dependabot Bot force-pushed the dependabot/cargo/serde-saphyr-0.0.29 branch from 9336775 to df91722 Compare August 18, 2026 01:01
codescene-access[bot]

This comment was marked as outdated.

@leynos

leynos commented Sep 19, 2026

Copy link
Copy Markdown
Owner

@dependabot recreate

@dependabot dependabot Bot changed the title Build(deps): bump serde-saphyr from 0.0.6 to 1.0.0 Bump serde-saphyr from 0.0.6 to 1.2.0 Sep 19, 2026
@dependabot
dependabot Bot force-pushed the dependabot/cargo/serde-saphyr-0.0.29 branch from df91722 to 2d6e30a Compare September 19, 2026 00:24
@coderabbitai

coderabbitai Bot commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: a0b3b532-26b7-4017-a5db-100c37f133b0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

codescene-access[bot]

This comment was marked as outdated.

@leynos

leynos commented Sep 19, 2026

Copy link
Copy Markdown
Owner

@coderabbitai Please investigate the cause of the following issue using codegraph exploration and research, identify a fix and provide an AI coding agent prompt for the fix:

  warning: could not find build script output file at /home/runner/work/netsuke/netsuke/target/llvm-cov-target/debug/build/netsuke-build/3d14a36f6dc3b2a5/output
  warning: could not find build script output file at /home/runner/work/netsuke/netsuke/target/llvm-cov-target/debug/build/netsuke-build/3d14a36f6dc3b2a5/output
  warning: could not find build script output file at /home/runner/work/netsuke/netsuke/target/llvm-cov-target/debug/build/netsuke-build/3d14a36f6dc3b2a5/output
  warning: could not find build script output file at /home/runner/work/netsuke/netsuke/target/llvm-cov-target/debug/build/netsuke-build/3d14a36f6dc3b2a5/output
  warning: could not find build script output file at /home/runner/work/netsuke/netsuke/target/llvm-cov-target/debug/build/netsuke-build/3d14a36f6dc3b2a5/output
  warning: could not find build script output file at /home/runner/work/netsuke/netsuke/target/llvm-cov-target/debug/build/netsuke-build/3d14a36f6dc3b2a5/output
  warning: could not find build script output file at /home/runner/work/netsuke/netsuke/target/llvm-cov-target/debug/build/netsuke-build/3d14a36f6dc3b2a5/output
  warning: could not find build script output file at /home/runner/work/netsuke/netsuke/target/llvm-cov-target/debug/build/netsuke-build/3d14a36f6dc3b2a5/output

https://github.com/leynos/netsuke/actions/runs/35409273294/job/105805416392?pr=450

Seek a systemic fix rather than tactical. Ask yourself, can this happen again or happen elsewhere? If so, think about a long term fix of the underlying issue.

Note, this query is specifically about the warning flood, not the build failure.

@leynos

leynos commented Sep 19, 2026

Copy link
Copy Markdown
Owner

@coderabbitai Please investigate the cause of the following issue using codegraph exploration and research, identify a fix and provide an AI coding agent prompt for the fix:

          FAIL [   0.119s] ( 208/3188) netsuke-build diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot
    stdout ───
  
      running 1 test
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      Snapshot file: src/snapshots/diagnostic_json/netsuke__diagnostic_json__tests__manifest_parse_error.snap
      Snapshot: manifest_parse_error
      Source: src/diagnostic_json_tests.rs:283
      ────────────────────────────────────────────────────────────────────────────────
      Expression: rendered
      ────────────────────────────────────────────────────────────────────────────────
      -old snapshot
      +new results
      ────────────┬───────────────────────────────────────────────────────────────────
         11    11 │       "severity": "error",
         12    12 │       "help": "YAML does not permit tabs; use spaces for indentation.",
         13    13 │       "url": null,
         14    14 │       "causes": [
         15       │-        "YAML parse error at line ⁨2⁩, column ⁨2⁩: ⁨tabs disallowed within this context (block indentation) at line 2, column 2⁩",
         16       │-        "tabs disallowed within this context (block indentation) at line 2, column 2"
               15 │+        "YAML parse error at line ⁨2⁩, column ⁨2⁩: ⁨error: line 2 column 2: tabs disallowed within this context (block indentation)\n --> <input>:2:2\n  |\n1 | targets:\n2 |     - name: test\n  |     ^ tabs disallowed within this context (block indentation)⁩",
               16 │+        "error: line 2 column 2: tabs disallowed within this context (block indentation)\n --> <input>:2:2\n  |\n1 | targets:\n2 |     - name: test\n  |     ^ tabs disallowed within this context (block indentation)"
         17    17 │       ],
         18    18 │       "source": {
         19    19 │         "name": "Netsukefile"
         20    20 │       },
      ────────────┴───────────────────────────────────────────────────────────────────
      Stopped on the first failure. Run `cargo insta test` to run all snapshots.
      test diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot ... FAILED
  
      failures:
  
      failures:
          diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot
  
      test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1344 filtered out; finished in 0.06s
      
    stderr ───
  
      thread 'diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot' (63566) panicked at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.48.0/src/runtime.rs:719:13:
      snapshot assertion for 'manifest_parse_error' failed in line 283
      stack backtrace:
         0: __rustc::rust_begin_unwind
         1: core::panicking::panic_fmt
         2: <insta::runtime::SnapshotAssertionContext>::finalize
         3: insta::runtime::assert_snapshot
         4: netsuke::diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot::render_manifest_parse_diagnostic_matches_snapshot::{closure#0}
         5: <insta::settings::Settings>::bind::<netsuke::diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot::render_manifest_parse_diagnostic_matches_snapshot::{closure#0}, ()>
         6: netsuke::diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot::render_manifest_parse_diagnostic_matches_snapshot
         7: netsuke::diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot
         8: netsuke::diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot::{closure#0}
         9: <netsuke::diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot::{closure#0} as core::ops::function::FnOnce<()>>::call_once
      note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
  
    Cancelling due to test failure: 3 tests still running
          PASS [   0.058s] ( 209/3188) netsuke-build graph_view::render_dot::tests::empty_graph_produces_well_formed_digraph
          PASS [   0.107s] ( 210/3188) netsuke-build diagnostic_json::tests::snapshot_filter_preserves_versions_outside_the_generator_block
          PASS [   0.117s] ( 211/3188) netsuke-build diagnostic_json::tests::render_runner_diagnostic_json_records_help_without_spans
  ────────────
       Summary [   5.318s] 211/3188 tests run: 210 passed, 1 failed, 5 skipped
          FAIL [   0.119s] ( 208/3188) netsuke-build diagnostic_json::tests::render_manifest_parse_diagnostic_matches_snapshot
  warning: 2977/3188 tests were not run due to test failure (run with --no-fail-fast to run all tests, or run with --max-fail)
  error: test run failed
  error: process didn't exit successfully: `/home/runner/.rustup/toolchains/nightly-2026-08-23-x86_64-unknown-linux-gnu/bin/cargo nextest run --manifest-path /home/runner/work/netsuke/netsuke/Cargo.toml --target-dir /home/runner/work/netsuke/netsuke/target/llvm-cov-target --workspace --all-targets --all-features` (exit status: 100)
  cargo llvm-cov nextest --manifest-path Cargo.toml --workspace --all-targets --all-features --lcov --output-path lcov.info failed with code 100

https://github.com/leynos/netsuke/actions/runs/35409273294/job/105805416392?pr=450

Seek a systemic fix rather than tactical. Ask yourself, can this happen again or happen elsewhere? If so, think about a long term fix of the underlying issue.

Note, this is a query about the build failure. A separate query has been raised for the warning flood.

@coderabbitai

This comment was marked as resolved.

@coderabbitai

This comment was marked as resolved.

dependabot Bot and others added 2 commits September 19, 2026 14:05
Bumps [serde-saphyr](https://github.com/bourumir-wyngs/serde-saphyr) from 0.0.6 to 1.2.0.
- [Release notes](https://github.com/bourumir-wyngs/serde-saphyr/releases)
- [Changelog](https://github.com/bourumir-wyngs/serde-saphyr/blob/master/CHANGELOG.md)
- [Commits](bourumir-wyngs/serde-saphyr@0.0.6...1.2.0)

---
updated-dependencies:
- dependency-name: serde-saphyr
  dependency-version: 0.0.29
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
`serde-saphyr` 1.2.0 replaced `saphyr-parser` with `granit-parser`, which
changes both the parser's error prose and the shape of its `Display` output:
errors now render with an embedded, annotated source snippet. Because
`collect_error_causes` serialises each source-chain `Display` into the
diagnostic JSON `causes` array, that upstream presentation detail leaked into
Netsuke's machine-readable schema, and the backend swap also reworded messages
the hint needles were pinned to.

Convert parser errors into Netsuke's own stable diagnostic model at the
adapter boundary rather than accepting the new snapshot output:

* Render `serde_saphyr::Error` through `SnippetMode::Off` and carry only the
  normalized, single-line summary. `YamlErrorSummary` wraps that summary and
  holds no reference to the original error, so the raw error cannot re-enter
  the source chain.
* Derive the hint from the normalized summary. Span handling, the
  `NamedSource`, and the localized hints are unchanged.
* Widen the hint needles to cover granit's spelling of the scanner failure,
  which the saphyr needle no longer matched — otherwise that hint would have
  silently stopped firing.

Update the tests pinned to the old backend's wording and locations, and add a
regression test asserting the summary keeps the parser reason but omits the
snippet, the `<input>:` marker, and the source line.

Split the structural diagnostic-JSON assertions into a sibling test module:
the additions pushed `diagnostic_json_tests` past Whitaker's 400-line module
cap. The file-backed insta snapshots stay in the declaring module, because
insta derives a snapshot's file name from the declaring module path.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@leynos
leynos force-pushed the dependabot/cargo/serde-saphyr-0.0.29 branch from 2d6e30a to fa8f152 Compare September 19, 2026 12:13
@github-actions
github-actions Bot merged commit 07248a3 into main Sep 19, 2026
20 of 21 checks passed
@github-actions
github-actions Bot deleted the dependabot/cargo/serde-saphyr-0.0.29 branch September 19, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cargo Dependabot channel for Rust crate updates. dependencies Dependency updates, applied to every Dependabot pull request.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant