| name | pop-cli-release |
| description | Use when releasing Pop CLI versions, including version bump, changelog prep, publishing crates, and release announcements. |
New Release Workflow
Complete checklist for releasing a new version of Pop CLI.
Prerequisites
- Must have push access to
r0gue-io/pop-cli
- Must be in the crates.io
pop-cli team for publishing
- Clean working directory recommended
Release Checklist
Phase 1: Pre-Release Preparation
1.1 Code Complete
1.2 Documentation
1.3 Cleanup Deprecated Code
Phase 2: Version Bump & Changelog
2.1 Bump Versions
2.2 Update Changelog
2.3 Create Release PR
Phase 3: Publish to crates.io
3.1 Dry Run
cargo publish -p pop-common --dry-run
cargo publish -p pop-telemetry --dry-run
cargo publish -p pop-chains --dry-run
cargo publish -p pop-contracts --dry-run
cargo publish -p pop-fork --dry-run
cargo publish -p pop-cli --dry-run
3.2 Publish (in order)
cargo publish -p pop-common
cargo publish -p pop-telemetry
cargo publish -p pop-chains
cargo publish -p pop-contracts
cargo publish -p pop-fork
cargo publish -p pop-cli
Note: If permission denied, request access at https://github.com/orgs/r0gue-io/teams
Phase 4: GitHub Release
4.1 Create Release
Phase 5: Announcements
5.1 Website Update
5.2 Social Announcements
Version Format
Current version location: Cargo.toml → [workspace.package] → version
[workspace.package]
version = "X.Y.Z"
Quick Commands
grep -A5 "\[workspace.package\]" Cargo.toml | grep version
git cliff --bump -o CHANGELOG.md
for crate in pop-common pop-telemetry pop-chains pop-contracts pop-fork pop-cli; do
cargo publish -p $crate --dry-run
done
rg -i "deprecated" --type rust
Notes
- Always dry-run before actual publish
- Publish crates in dependency order (common → cli)
- Wait for each crate to be available on crates.io before publishing dependents
- Community contributions section in release notes is manual