feat(justfile): add create-release-container for toolchain-less boxes #299

Merged
nrupard merged 1 commit from feat/BUNYIP-292-create-release-container into main 2026-06-30 19:42:46 +02:00
Owner

Implements BUNYIP-292.

Adds just create-release-container <major|minor|hotfix> so a toolchain-less dev box can cut a bunyip release end-to-end. It mirrors create-release step-for-step, with ONE difference: the cargo update --workspace lock-sync runs inside the pinned rust-builder-glibc image (mirroring check-container's mounts) instead of on the host.

Why: create-release runs cargo update --workspace on the host to sync the 5 workspace-member version entries in Cargo.lock (mandatory, CI builds --locked, BUNYIP-59). Dev boxes have no local cargo, so it aborts mid-run after creating the release branch and bumping Cargo.toml, leaving a half-done release.

Details:

  • Runs the cargo step ONLINE so it can resolve the dunite-core git dependency (anon-readable, no token); an --offline run cannot check it out.
  • All git / fj steps stay on the host (host ssh key + fj keys.json).
  • Fails fast if docker is absent, before creating the branch.
  • create-release is unchanged; both recipes carry a cross-reference comment, and CLAUDE.md documents which to use.

Validation: ran the container lock-sync step against the current v0.5.0 tree. cargo resolved dunite online and reported Locking 0 packages (no-op), exit 0, Cargo.lock unchanged. No Rust/sqlx files changed (justfile + CLAUDE.md only), so check-container is a no-op and was not run.

Implements BUNYIP-292. Adds `just create-release-container <major|minor|hotfix>` so a toolchain-less dev box can cut a bunyip release end-to-end. It mirrors `create-release` step-for-step, with ONE difference: the `cargo update --workspace` lock-sync runs inside the pinned `rust-builder-glibc` image (mirroring `check-container`'s mounts) instead of on the host. Why: `create-release` runs `cargo update --workspace` on the host to sync the 5 workspace-member version entries in `Cargo.lock` (mandatory, CI builds `--locked`, BUNYIP-59). Dev boxes have no local cargo, so it aborts mid-run after creating the release branch and bumping `Cargo.toml`, leaving a half-done release. Details: - Runs the cargo step ONLINE so it can resolve the `dunite-core` git dependency (anon-readable, no token); an `--offline` run cannot check it out. - All git / fj steps stay on the host (host ssh key + fj `keys.json`). - Fails fast if docker is absent, before creating the branch. - `create-release` is unchanged; both recipes carry a cross-reference comment, and CLAUDE.md documents which to use. Validation: ran the container lock-sync step against the current `v0.5.0` tree. cargo resolved dunite online and reported `Locking 0 packages` (no-op), exit 0, `Cargo.lock` unchanged. No Rust/sqlx files changed (justfile + CLAUDE.md only), so check-container is a no-op and was not run.
feat(justfile): add create-release-container for toolchain-less boxes
All checks were successful
E2E / Playwright against deployment (pull_request) Successful in 25s
Check / fmt + clippy + build + tests (pull_request) Successful in 19m53s
Create release / Create release from merged PR (pull_request) Has been skipped
089fb075d8
bunyip's `just create-release` runs `cargo update --workspace` to sync the workspace-member version entries in Cargo.lock (required because CI builds --locked, BUNYIP-59). Dev boxes have no local Rust toolchain, so that recipe aborts at the cargo step after already creating the release branch and bumping Cargo.toml, leaving a half-done release to finish by hand.

Add `create-release-container`, a mirror of `create-release` whose ONLY difference is that the `cargo update --workspace` lock-sync runs inside the pinned rust-builder image (mirroring `check-container`'s mounts) instead of on the host. It runs online so cargo can resolve the dunite-core git dependency (anon-readable, no token); an --offline run cannot check it out. Every git / fj step stays on the host so it uses the host ssh key and fj keys.json. The recipe fails fast if docker is absent, before creating the branch.

Both recipes carry a cross-reference comment to stay in sync, and CLAUDE.md documents when to use which. Validated the container step end-to-end against v0.5.0: cargo resolved dunite online and reported "Locking 0 packages" (no-op), exit 0, Cargo.lock unchanged.

#BUNYIP-292

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: nrupard <natrsmith11@gmail.com>
nrupard scheduled this pull request to auto merge when all checks succeed 2026-06-30 19:39:24 +02:00
nrupard deleted branch feat/BUNYIP-292-create-release-container 2026-06-30 19:42:46 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/bunyip!299
No description provided.