CLI 0.0.8 / art 0.0.6 — published¶
The implementation merged in PR #189. Post-merge CI and documentation deployment passed. Independent publication is complete: art 0.0.6 workflow and CLI 0.0.8 workflow both succeeded, including exact-version registry consumer verification. Core 0.0.4 and ext 0.0.6 were unchanged.
Independent package versions¶
| Package | Version | Release role |
|---|---|---|
rs-rich-cli |
0.0.8 | Configuration, batch and pager workflows; crop flag |
rs-rich-art |
0.0.6 | Public crop anchor API |
rs-rich-ext |
0.0.6 | Unchanged, already published dependency |
rs-rich |
0.0.4 | Unchanged faithful core |
The prior release completed after dependency recovery: art 0.0.5, ext 0.0.6 and CLI 0.0.7. The 0.0.7 notes retain the initial package mismatch history.
Included scope¶
-
rich --demoruns a self-contained guided suite tour, with adjustable terminal section pauses, real workflow examples and rich-art playback. Ctrl+C restores the terminal and cleans temporary examples; redirected output is finite and has no delays. Lean builds explain unavailable art sections. -
Full TOML parsing with a strict schema. Validate all profiles, including inactive ones; reject unknown keys, invalid types/values and missing requested profiles. Merge defaults, selected profile and explicit CLI options in that order, regardless of TOML table order. Profile
falseand inverse CLI flags can disable inherited booleans; consumed option values and operands after--keep their meaning. rich config showandrich config validateemit JSON without rendering. Theirsettingsobject includes configured settings and explicit overrides, not all built-in CLI defaults.- Batch
--dry-runreports planned inputs, destinations and planning errors without writing exports, making parent directories or starting workers. It does not parse/render document contents. Batch planning rejects exports that alias inputs through symbolic or hard links, and rejects hard-linked output collisions for parallel workers. --jobs Nbounds subprocess workers for file exports. Temporary files spool worker output to bound parent buffering; replay follows input order. Terminal-only batch rendering stays serial. On an observed failure, default fail-fast stops new scheduling while already-running workers finish.--continue-on-errorallows later scheduling; errors still produce a failing aggregate exit status. Parallelism has startup and disk costs, so speedup is workload-dependent.- Opt-in
--auto-pagerpages only terminal output taller than the viewport. Redirected stdout is never paged.--no-pageroverrides configured paging;--no-auto-pagerdisables automatic paging. Explicit--pagerremains. - Nine
ImageAnchorpositions andImageArt::anchorcontrol cover cropping: center (default), top, bottom, left, right and the four corners. Contain and unfitted library images are unchanged. The CLI requires cover fitting for--image-anchor. - Package verification checks registry contents before tagging, plus benchmark and demo evidence and updated workflow recipes.
These conveniences stay in CLI and art. No new renderer or behavior is added to the faithful core. Broader watch, theme, image/GIF and generalized rendering work remains outside this bounded scope.
Package checks and release handoff¶
Run from a clean checkout:
During uncommitted preparation only, use
python3 scripts/check_packages.py --allow-dirty. The gate is also wired into
scripts/validate_release.py and CI. It needs live registry access and fails
closed on network or HTTP errors. It compares packaged source and semantic
Cargo manifests for already-published workspace versions against immutable
registry archives, excluding only package metadata and lockfile artifacts
(Cargo.toml.orig, .cargo_vcs_info.json, Cargo.lock). Cargo then verifies
workspace packages with locked dependencies and all features, staging unpublished
siblings where needed.
Staged package success is not registry publication readiness. The completed
release published art 0.0.6 before CLI 0.0.8 and verified exact-version consumers
from the registry, as recorded in the successful workflows above. These packages
release independently; do not create a coordinated v0.0.8 tag, republish
unchanged core/ext packages, or move published package tags.
Validation status¶
Focused art tests cover asymmetric source pixels at every anchor, odd crop rounding, center defaults and preserved contain/background behavior. The art all-feature suite and Clippy passed during implementation. The combined all-feature workspace suite passed 556 tests; the lean CLI suite passed 121. Package regressions passed 33 Python tests. Real terminal/watch/pager checks, workflow snapshots, strict docs, MSRV and staged package verification also passed. See validation evidence.
- [x] Combined formatting, Clippy and workspace tests
- [x] Rust 1.90 and lean-feature checks
- [x] Final live package verification on stable source
- [x] Reproducible serial/parallel benchmark evidence
- [x] Fresh release-binary demos and strict docs build
- [x] Independent combined review and release-binary regression confirmations
- [x] Main-target PR and required CI checks (#189)
- [x] Independent publication and exact-version registry consumer verification
Track implementation in the accepted plan. Check off final gates only when their evidence is available.