Skip to content

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 --demo runs 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 false and inverse CLI flags can disable inherited booleans; consumed option values and operands after -- keep their meaning.

  • rich config show and rich config validate emit JSON without rendering. Their settings object includes configured settings and explicit overrides, not all built-in CLI defaults.
  • Batch --dry-run reports 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 N bounds 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-error allows later scheduling; errors still produce a failing aggregate exit status. Parallelism has startup and disk costs, so speedup is workload-dependent.
  • Opt-in --auto-pager pages only terminal output taller than the viewport. Redirected stdout is never paged. --no-pager overrides configured paging; --no-auto-pager disables automatic paging. Explicit --pager remains.
  • Nine ImageAnchor positions and ImageArt::anchor control 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:

python3 scripts/check_packages.py

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.