release: dry-run the publish from a fresh unpack of the packages #232
No reviewers
Labels
No labels
Area/ci
Area/cli
Area/client
Area/client-core
Area/daemon
Area/deps
Area/docs
Area/grid
Area/manual
Area/nix
Area/protocol
Area/pty
Area/render
Area/shaping
Area/skills
Area/transport
Area/vt
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Performance
Kind/Security
Kind/Testing
perf-regression-accepted
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Blocked
Status
Need More Info
Status
Upstream
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
felis-terminal/felis!232
Loading…
Reference in a new issue
No description provided.
Delete branch "release/dry-run-fresh-packages"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
just publish-dry-runfailed on PRs that did not cause it: #228 and #229 failed buildingfelis-clientagainst anAction::RunCommand { background }field that exists only on another branch.cargo publish --workspace --dry-runbuilds each crate against the others through a local overlay registry. Cargo unpacks an overlay crate intoCARGO_HOME/registry/src/-<hash>/once per name and version and keeps its build fresh while those stand. Since every felis crate is on crates.io at its current version, any tree that changes a library without a bump verifies against whichever tree packaged that version first on the sameCARGO_HOME(the shared CI runner, or parallel local worktrees).tools/release/crates.py publish-dry-rundrops the workspace's overlay unpacks, cleans the felis units of<target>/publish-dry-run, and runs the dry run there, so the main target's test build survives. An exclusive lock inCARGO_HOMEspans the whole step.just publish-dry-runcalls it; pr.yml and release.yml are unchanged.Verified locally on one
CARGO_HOMEand target: main, then a branch adding a felis-render-core API, both pass in sequence; the old recipe failed the second.