Skip to content

Bump icy_sixel to 0.6.0 (consolidates Dependabot #207) - #208

Merged
l1a merged 1 commit into
mainfrom
chore/deps-icy-sixel-0.6
Aug 27, 2026
Merged

Bump icy_sixel to 0.6.0 (consolidates Dependabot #207)#208
l1a merged 1 commit into
mainfrom
chore/deps-icy-sixel-0.6

Conversation

@l1a

@l1a l1a commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Consolidates Dependabot #207 onto a gated branch so the release hygiene it bypasses — version bump, NOTES.md entry, man regen — is actually done. Follows the #167/v0.6.3, #184/v0.6.16, #188/v0.6.19 and #199/v0.8.1 pattern.

retch-cli → 0.9.5. retch-sysinfo unchanged at 0.1.56.

What changed and why

icy_sixel 0.5.1 → 0.6.0. Applied as Dependabot's exact patch, so this carries precisely the change #207's green CI validated; Cargo.lock was then diff-verified to be that entry plus our own retch-cli bump, with no transitive movement. Worth stating, because quantette — icy_sixel's palette quantiser — moved in v0.8.1, and a move here would have changed emitted colours rather than just structure. It did not.

This is not a lockfile-only roll. A caret range on a 0.x spec will not admit 0.6, so the Cargo.toml spec widened "0.5""0.6" — the same shape as v0.6.4's base64 0.22 → 0.23, and the reason that bump was deliberately excluded from the v0.6.3 consolidation. icy_sixel is graphics-feature-only, so just check's --features graphics pass (v0.6.5) and the CI graphics-feature job (v0.6.7) are the only legs that compile it at all — a green default matrix proves nothing here.

A 0.x minor is semver-breaking by convention, but the break does not reach retch — established from the source, not from the fact that it compiled. The only two calls retch makes (SixelImage::try_from_rgba and .encode(), one call site in src/logo.rs::print_sixel_rgba) live in sixel_image.rs, which together with encoder.rs is byte-identical between the two versions. The entire 0.6.0 change is decoder-side: a new stateful SixelDecoder whose colour registers persist across images (purely additive in lib.rs's exports), plus a MAX_PIXELS guard against decode-time memory exhaustion. retch never decodes sixel — it only ever emits it.

The 164-line docs/retch.1 diff is not from this bump

just man removed 164 .Bl/.El lines. Cause: mandown was upgraded to 1.1.1 after v0.9.4 shipped, and it no longer emits those around list items.

The new page is the correct one. .Bl/.El are mdoc macros, undefined in man(7): groff reports macro 'Bl' not defined and macro 'El' not defined on the committed page and zero warnings on the regenerated one, while the rendered output is byte-identical (409 lines, same sha256). Nothing a reader sees changed; two warnings went away.

Proved pre-existing rather than assumed, by regenerating at the committed version 0.9.4 first and confirming the diff was exactly 164 deletions, all .Bl/.El, zero other lines either way. Without that control, a 164-line man-page diff arriving beside a dependency bump looks like the bump's doing.

This is the v0.6.2/v0.6.16 flip-flop on a new axis, and it flips the same way: a contributor on an older mandown regenerates, re-adds the macros, and just pr step 4 fails with a large diff that reads as "my change broke the man page." The wiki's Development-Setup.md now pins mandown ≥ 1.1.1 and names the symptom.

Test plan

  • just pr green end to end — fmt, clippy --workspace and --features graphics, 254 tests (87 cli lib + 15 integration + 152 sysinfo), man regen idempotent at retch 0.9.5, Cargo.lock committed, audit advisory-only (pre-existing allowed paste RUSTSEC-2024-0436)
  • Cargo.lock diff-verified against Dependabot's deps(deps): bump icy_sixel from 0.5.1 to 0.6.0 in the cargo-dependencies group #207: exactly the icy_sixel entry, no transitive drift
  • encoder.rs and sixel_image.rs sha256-compared across 0.5.1 and 0.6.0 — identical
  • Isolated encode of a fixed 64×48 RGBA gradient through try_from_rgba + encode is identical on both versions (9885 bytes, FNV-1a fe96948691ac471a), with the probe's own lockfile read to confirm it really resolved 0.6.0
  • End-to-end: real --features graphics binary in a 138-col PTY with TERM=xterm-sixel emits an identical sixel payload on both versions (ca8a8d19…, 10203 bytes, 228 colour registers, well-formed DCS introducer and ST terminator), with each build's lockfile verified at build time
  • Man page: groff warnings 2 → 0, rendered output byte-identical (409 lines, same sha256)
  • Man page delta proved pre-existing by regenerating at the committed version 0.9.4
  • Wiki pushed before opening this PR — Development-Setup.md, 4476f52..48627da

Legitimate skips, each checked rather than assumed: README.md and docs/retch.md (no user-visible field, CLI flag or config key changed; both mention Sixel only as a capability, with no version), Configuration-and-Theming.md (no config key, theme or display flag changed) and Workspace-Architecture.md (no module layout or crate-boundary change). No wiki page names icy_sixel or pins a dependency version.

Consolidates Dependabot #207 onto a gated branch so the release hygiene
it bypasses -- version bump, NOTES entry, man regen -- is actually done.

Not lockfile-only: a caret range on a 0.x spec will not admit 0.6, so the
Cargo.toml spec widened "0.5" -> "0.6". icy_sixel is graphics-feature-only,
so only --features graphics and the CI graphics-feature job compile it.

The 0.x minor is semver-breaking by convention but does not reach retch:
sixel_image.rs and encoder.rs, which hold the only two calls retch makes,
are sha256-identical between 0.5.1 and 0.6.0. The whole change is
decoder-side (a new stateful SixelDecoder, additively exported, plus a
MAX_PIXELS decode guard) and retch only ever emits sixel.

docs/retch.1 also loses 164 .Bl/.El lines, which is NOT from this bump:
mandown was upgraded to 1.1.1 after v0.9.4 shipped and no longer emits
them. They are mdoc macros, undefined in man(7) -- groff warns twice on
the old page and not at all on the new one, and the rendered output is
byte-identical. Proved pre-existing by regenerating at the committed
version 0.9.4 first.

retch-cli -> 0.9.5; retch-sysinfo unchanged at 0.1.56.

Assisted-By: Claude Opus 5
@l1a
l1a merged commit 5f5fda4 into main Aug 27, 2026
18 checks passed
@l1a
l1a deleted the chore/deps-icy-sixel-0.6 branch August 28, 2026 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant