All notable changes to Sherpack are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.4.0 - 2026-05-03
The "Helm-migration-ready" release. Closes the last hard blockers for
porting existing Helm charts (real lookup(), fromJson/fromYaml,
helm test runner, helm repo index equivalent), ships a dedicated
bilingual migration guide, and brings the Rust toolchain up to the
latest stable.
- Cluster-aware
lookup()— Helm-compatible 4-arg signature (apiVersion,kind,namespace,name). Returns{}duringsherpack template(deterministic, GitOps-safe), reads the live cluster duringsherpack install/sherpack upgrade. Per-call timeout (default 5 s, configurable viaSHERPACK_LOOKUP_TIMEOUT_SECS), per-render cache, and aggregatedtracing::warn!notices when a non-empty result is consumed. The Helm chart converter now preserveslookup(...)calls instead of rewriting them to{}. Dedicated user guide atdocs/LOOKUP.md. fromJson/fromYamlfilters and global functions — parse inline JSON or YAML strings into values. Available as bothvalue | fromjsonandfromjson(value)to match Helm idioms.sherpack test <release>— runs thetest-phase hooks of the latest stored release against the cluster. Reports per-hook PASS/FAIL with duration; exits non-zero on any failure.sherpack repo index <DIR>— generates a Helm-compatibleindex.yamlfrom a directory of*.tgzarchives. Supports--url <BASE>to prepend an absolute URL and--merge <PATH>to add only new entries to an existing index.sherpack completion <SHELL>— emits a shell-completion script forbash,zsh,fish,powershell, orelvish(viaclap_complete).- Structured logging — the CLI installs
tracing-subscriberwithEnvFilter. Default level showswarnfor sherpack crates and silences noisy deps;--debugraises sherpack crates todebug, andRUST_LOG=...overrides as expected. - Bilingual Helm-to-Sherpack migration guide in the Docusaurus
site (
/migrating-from-helm, EN + FR), with animated terminal hero, SVG migration-flow diagram, syntax cheat sheet, command equivalence table,lookup()lifecycle SVG, parity matrix, gotchas, FAQ, and CTAs. - Dedicated
docs/LOOKUP.mduser guide covering modes, return shapes, caching, timeouts, GitOps caveats, and migration patterns. - Sherpack branding in the Docusaurus site — replaces the default Docusaurus logo and favicon with a custom 3-chevron mark in the Terminal Noir cyan palette.
- Bumped Rust MSRV from 1.88 to 1.95 (latest stable, January 2026).
Enginebuilder gainswith_cluster_reader(reader)and alookup_state()accessor; the registeredlookupfunction picks up the reader when present and falls back to a no-op{}otherwise.KubeClientno longer holds a long-livedEngine— install / upgrade build a per-render engine viaengine_with_lookup()so each operation gets a fresh cache and reader.- Dependency updates (deps batch #48 and individual merges):
kube2.0 → 3.1,k8s-openapi0.26 → 0.27,rand0.9 → 0.10 (withRngExtimport fix),jsonschema0.38 → 0.45,rusqlite0.38 → 0.39,minisign0.8 → 0.9,react-dom19.2.3 → 19.2.4 (website),@easyops-cn/docusaurus-search-local0.52.2 → 0.55.1 (website),actions/download-artifactv7 → v8 (CI). - Documentation overhaul —
HELM_COMPARISON.md,HELM_FEATURE_GAP_ANALYSIS.md, andKILLER_FEATURES.mdreconciled against actual code state; per-feature status (🟢 / 🟡 / 🔴) added toKILLER_FEATURES.mdto stop reading like marketing. Test counts refreshed everywhere (685 passing, 0 failing across 6 crates).
clippy::explicit-counter-loopinsherpack-engine/src/error.rs(calculate_spannow usesenumerate()).clippy::unnecessary-sort-byacross all storage drivers (sort_by_key(|r| Reverse(r.version))instead of manualcmp).- Typo in installation docs:
sherpack completions→sherpack completion(matches the actual command name).
- 685 tests passing (up from 654 at 0.3.0): added 8 cluster-reader
tests, 7 fromjson/fromyaml tests, 4 transformer tests for the
preserved
lookup, 6 KubeClusterReader tests, 3 integration tests forrepo index, plus the engine/lookup integration tests. - Added
tracingtosherpack-kubeandtracing+tracing-subscribertosherpack-cli.
0.3.0 - earlier
Initial public-facing release. See git history for details.