Releases: Ellipsis-Labs/cargo-hold
v1.3.4
cargo-hold v1.3.4
v1.3.4 fixes a cargo hold voyage cache correctness issue when restored target artifacts are stale and source files have changed. voyage now leaves artifact mtimes alone in changed-source runs so the next Cargo build can correctly rebuild instead of seeing refreshed artifacts as current.
Full Changelog: v1.3.3...v1.3.4
Breaking Changes
- None.
Highlights Since v1.3.3
Voyage Cache Correctness
cargo hold voyagenow uses theanchor/salvagesource-change report to detect modified or newly added tracked files before garbage collection.- When source changes are present, the
heavephase skips artifact mtime rejuvenation for restored build artifacts. - Standalone
cargo hold heaveand no-changevoyageruns keep the existing artifact preservation behavior. - Added regression coverage for stale artifact mtimes after a source change.
Upgrade Notes
- No migration is required.
- Upgrading is recommended for CI jobs that restore a
targetcache and runcargo hold voyagebefore building.
Pull Requests by Category
Bug Fixes
- fix: skip voyage artifact rejuvenation after source changes (#72)
Misc
- chore: bump version (#70)
v1.3.3
cargo-hold v1.3.3
Patch release for cargo hold heave cache rejuvenation. This fixes restored target caches that contain generated symlinks, so heave can refresh stale artifact mtimes without failing on symlink timestamp handling.
Full Changelog: v1.3.2...v1.3.3
Breaking Changes
- None.
Highlights Since v1.3.2
Bug Fixes
- Fixed
cargo hold heavestale-cache artifact rejuvenation so generated symlinks, such as protobuf.lafiles undertarget/*/build, do not causecargo_hold::file::invalid_typefailures. - Artifact collection now reads symlink metadata without following links and records whether each artifact is a regular file. Rejuvenation only updates mtimes for regular files while keeping symlinks in the artifact set for normal garbage collection.
Upgrade Notes
- No migration is required. Upgrade normally to pick up the
heavesymlink handling fix.
Pull Requests by Category
Bug Fixes
- fix: skip symlink mtimes during heave rejuvenation (#69)
Misc
- chore: bump version (#67)
v1.3.2
cargo-hold v1.3.2
Patch release focused on making CI cache recovery fail correctly and preserving restored build artifacts during garbage collection. This release also hardens the release pipeline with trusted publishing and binary attestations.
Full Changelog: v1.3.1...v1.3.2
Breaking Changes
None.
Highlights Since v1.3.1
CI Cache Correctness
stowandsalvagenow fail when tracked files cannot be read or hashed, instead of silently writing or restoring partial metadata.heavenow refreshes stale mtimes on recently restored crate artifacts before selecting artifacts for removal, preventing restored CI caches from being immediately deleted.- Timestamp restoration now validates repository-relative metadata paths before applying mtimes.
Release Integrity
- Release binaries are now attested through GitHub artifact attestations.
- Publishing now uses crates.io trusted publishing instead of a long-lived registry token.
Pull Requests by Category
Bug Fixes
- Fix CI failures when
salvage/stowskip files andheaveeats restored cache (#62) - Satisfy
clippy::manual_checked_opsin GC auto-cap sizing (#64)
CI and Release
Dependencies and Maintenance
v1.3.1
cargo-hold v1.3.1
This patch release tightens Cargo registry garbage collection so it respects the active Cargo home, reports cleanup work more clearly, and avoids deleting Cargo authentication files. It also fixes GC timestamp persistence from heave runs and refreshes dependencies while preserving Rust 1.88.0 compatibility.
Full Changelog: v1.3.0...v1.3.1
Highlights
Cargo Registry GC
cargo hold heavenow honorsCARGO_HOMEwhen cleaning the registry cache, so non-default Cargo homes are handled correctly.- Registry cleanup output now tracks files, directories, and bytes removed.
- GC no longer deletes
credentials.toml, preserving private registry tokens for crates.io, GitHub Packages, and other private registries.
Timestamp Handling
heavenow records the last GC timestamp instead of advancing it duringstow, improving artifact retention behavior across CI runs.- Tests and README guidance were updated to cover the GC timestamp semantics.
Maintenance
- Updated direct Rust dependency floors and refreshed the lockfile while keeping compatibility with Rust 1.88.0.
- Improved integration test Cargo resolution so temporary
HOMEandCARGO_HOMEsetups use the real Cargo binary reliably.
Pull Requests
Features
- feat: honor CARGO_HOME in registry GC (#45)
Bug Fixes
Maintenance
- chore(deps): bump tempfile from 3.23.0 to 3.24.0 in the actions group (#47)
- chore: update dependencies (#55)
- chore: bump version (#56)
New Contributors
- @mooncitydev made their first contribution in #54.
v1.3.0
What's Changed
🏕 Features
- chore: bump version by @brndnmtthws in #42
- feat: harden auto max target sizing by @brndnmtthws in #43
- refactor: modularize cli, commands, and gc by @brndnmtthws in #44
Full Changelog: v1.2.5...v1.3.0
v1.2.5
What's Changed
🏕 Features
- fix: preserve gc metrics on anchor stow by @brndnmtthws in #40
- chore: bump version by @brndnmtthws in #41
Full Changelog: v1.2.4...v1.2.5
v1.2.4
What's Changed
🏕 Features
- chore: bump version by @brndnmtthws in #38
👒 Dependencies
- chore(deps): bump the actions group with 3 updates by @dependabot[bot] in #39
Full Changelog: v1.2.3...v1.2.4
v1.2.3
What's Changed
🏕 Features
- chore: bump version by @brndnmtthws in #36
- fix: stabilize heave cap sizing by @brndnmtthws in #37
Full Changelog: v1.2.2...v1.2.3
v1.2.2
What's Changed
🏕 Features
- chore: bump version by @brndnmtthws in #34
- feat: harden auto max cap and log metrics by @brndnmtthws in #35
Full Changelog: v1.2.1...v1.2.2
v1.2.1
What's Changed
🏕 Features
- feat: improve GC auto cap heuristics and split commands module by @brndnmtthws in #33
Full Changelog: v1.2.0...v1.2.1