Nils CLI Release
Contract
Prereqs:
- •Run inside the
nils-cligit work tree (the script resolves the repo root viagit). - •
git,python3,cargo,semantic-commit, andgit-scopeavailable onPATH. - •Release checks available at
.codex/skills/nils-cli-checks/scripts/nils-cli-checks.sh(unless--skip-checks).
Inputs:
- •Required:
- •
--version X.Y.Z(acceptsvX.Y.Zand normalizes toX.Y.Z)
- •
- •Optional:
- •
--skip-checks(skip full lint/tests; still runscargo check --workspaceto refreshCargo.lock) - •
--skip-readme(do not update README release tag example) - •
--skip-push(do not push commit or tag toorigin) - •
--allow-dirty(allow a dirty working tree) - •
--force-tag(delete existing local/remote tag before re-tagging)
- •
Outputs:
- •Updates workspace version in
Cargo.tomland any crateCargo.tomlfiles with explicitversion = "...". - •Updates README release tag examples (unless
--skip-readme). - •Refreshes
Cargo.lockviacargo checkor the full checks script. - •Creates a semantic commit for the version bump.
- •Creates an annotated tag
vX.Y.Zand (unless--skip-push) pushes commit + tag toorigin.
Exit codes:
- •
0: success - •
1: command failed or a prerequisite is missing - •
2: usage error or invalid inputs
Failure modes:
- •Invalid version format or missing
--version. - •Dirty working tree without
--allow-dirty. - •Tag already exists without
--force-tag. - •Required commands missing (
git,python3,cargo,semantic-commit,git-scope). - •Release checks or
cargo checkfail. - •Commit or tag creation fails.
Scripts (only entrypoints)
- •
.codex/skills/nils-cli-release/scripts/nils-cli-release.sh
Workflow
- •Validate inputs and environment.
- •Bump workspace + crate versions and update README.
- •Run checks (or
cargo check) to refreshCargo.lock. - •Commit with
semantic-commit, tagvX.Y.Z, and push to trigger the release workflow.