Follow these steps for every release. Do not skip steps.
cargo fmt --check # Code formatted
cargo clippy # No warnings
cargo test # Tests pass
cargo build --release # Release builds
cargo update # Update dependencies
cargo audit # No security vulnerabilitiesfreeze and thaw use #[cfg(unix)] — imports gated behind cfg(unix) cause unused-import errors on Windows with -D warnings. Always verify:
rustup target add x86_64-pc-windows-msvc # One-time setup
cargo check --target x86_64-pc-windows-msvcTest new features manually with the release binary:
./target/release/proc --version # Verify version
./target/release/proc --help # Verify help includes new commandsTest new commands/flags work as expected before releasing.
Update version in ALL of these files:
-
Cargo.toml— version field -
pkg/npm/package.json— version field -
flake.nix— version field
Update and verify all docs are complete:
-
CHANGELOG.md— Add new version section with changes -
README.md— Review thoroughly: hero examples, Quick Start, Commands table, Filters table, Examples section all reflect new features -
ROADMAP.md— Mark completed items, update current release section -
src/lib.rs— Review Rust docs: Features list, Quick Start examples, Commands list all reflect new features. Runcargo doc --no-deps --opento preview. This is what shows on docs.rs. -
skills/proc-cli/SKILL.md— Agent Skills: new commands, flags, schemas -
skills/proc-cli/reference.md— JSON output schemas match actual output -
docs/commands/— GitHub Pages: new command pages, index.md updated - Verify
proc manpageoutput includes new commands - Verify
proc completionsincludes new commands
git add -A
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z
git push && git push --tagsAfter tag push, monitor GitHub Actions:
- Build succeeds for all platforms
- GitHub Release created with binaries
- crates.io published
- npm published
- Homebrew tap updated
- Scoop bucket updated
- Docker image pushed
# Verify packages (after CI completes)
cargo install proc-cli # crates.io
npm info proc-cli version # npm
brew update && brew info yazeed/proc/proc # Homebrew
docker pull yazeed/proc # DockerAlso verify:
- https://docs.rs/proc-cli — Rust docs updated
-
proc --version— Shows new version -
proc manpage— Includes new commands -
proc completions bash— Includes new commands
cargo clean # Remove build artifacts (~10GB+ after a release session)On tag push, GitHub Actions handles:
- Build: Cross-compile for all platforms
- GitHub Release: Create release with binaries
- crates.io: Publish with
--allow-dirty - npm: Publish proc-cli package
- Homebrew: Update yazeed/homebrew-proc tap
- Scoop: Update yazeed/scoop-bucket-proc bucket
- Docker: Push to yazeed/proc on Docker Hub
Configure in GitHub repo settings → Secrets:
| Secret | Purpose |
|---|---|
HOMEBREW_TAP_TOKEN |
PAT for homebrew-proc repo |
SCOOP_BUCKET_TOKEN |
PAT for scoop-bucket-proc repo |
NPM_TOKEN |
npm automation token |
DOCKERHUB_USERNAME |
Docker Hub username |
DOCKERHUB_TOKEN |
Docker Hub access token |
| Channel | Package Name | Install Command |
|---|---|---|
| crates.io | proc-cli | cargo install proc-cli |
| npm | proc-cli | npm install -g proc-cli |
| Homebrew | proc | brew install yazeed/proc/proc |
| Scoop | proc | scoop bucket add proc https://github.com/yazeed/scoop-bucket-proc && scoop install proc |
| Docker | yazeed/proc | docker run yazeed/proc |
| Nix | — | nix profile install github:yazeed/proc |