pop-cli-release

star 113

Use when releasing Pop CLI versions, including version bump, changelog prep, publishing crates, and release announcements.

r0gue-io By r0gue-io schedule Updated 2/20/2026

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

  • All planned features merged
  • All PRs for this release approved and merged
  • No blocking issues remaining

1.2 Documentation

  • Update docs to reflect new functionalities
  • If PR still under review near deadline, have docs PR ready to merge
  • Ensure new features have external messaging ready (Twitter draft)

1.3 Cleanup Deprecated Code

Phase 2: Version Bump & Changelog

2.1 Bump Versions

  • Update workspace.package.version in root Cargo.toml
    [workspace.package]
    version = "X.Y.Z"
    
  • Verify all crate versions align (they inherit from workspace)

2.2 Update Changelog

  • Run git-cliff to generate changelog:
    git cliff --bump -o CHANGELOG.md
    
  • Review generated changelog for accuracy
  • Add any missing notable changes manually

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

  • Confirm all crates from Phase 3 are available on crates.io
  • Go to https://github.com/r0gue-io/pop-cli/releases
  • Click "Draft a new release"
  • Create new tag: vX.Y.Z
  • Generate release notes automatically
  • Add Community Contributions section manually
  • Match format of previous releases

Phase 5: Announcements

5.1 Website Update

5.2 Social Announcements

  • Post on Twitter/X
  • Post on Telegram

Version Format

Current version location: Cargo.toml[workspace.package]version

[workspace.package]
version = "X.Y.Z"

Quick Commands

# Check current version
grep -A5 "\[workspace.package\]" Cargo.toml | grep version

# Generate changelog
git cliff --bump -o CHANGELOG.md

# Dry run all publishes
for crate in pop-common pop-telemetry pop-chains pop-contracts pop-fork pop-cli; do
  cargo publish -p $crate --dry-run
done

# Find deprecated code
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
Install via CLI
npx skills add https://github.com/r0gue-io/pop-cli --skill pop-cli-release
Repository Details
star Stars 113
call_split Forks 39
navigation Branch main
article Path SKILL.md
More from Creator