Releasing
Release Authority
Section titled “Release Authority”The canonical release version lives in the workspace root Cargo.toml under [workspace.package].version.
Everything else derives from that source through ./scripts/release-version.sh.
Useful commands:
./scripts/release-version.sh print./scripts/release-version.sh sync./scripts/release-version.sh check./scripts/release-version.sh set <version>Standard Release Flow
Section titled “Standard Release Flow”- Run the quality gate.
cargo testcargo clippy -- -D warnings- Bump and sync versions.
./scripts/release-version.sh set <version>./scripts/release-version.sh check- Commit and tag.
git commit -am "release: <version>"git tag v<version>git push origin maingit push origin v<version>- Monitor workflows:
release-binaries.ymlrelease-rust.ymlrelease-node.ymlrelease-python.ymlrelease-npm-cli.ymlrelease-pypi-cli.ymlrelease-docker.ymlrelease-homebrew-tap.yml
Why The Rust Publish Flow Still Waits
Section titled “Why The Rust Publish Flow Still Waits”Dependent crates cannot be published safely until crates.io has indexed the previously published crate version. This repository keeps that protection in place.
The current release workflow no longer relies on blind sleep 30 delays alone.
It keeps an intentional propagation delay, probes the specific crate version with bounded network timeouts, then keeps a short stabilization buffer before moving to the next dependent crate. If crates.io is slow, bounded publish retries take over instead of letting the workflow hang forever.
Install-Channel Verification Checklist
Section titled “Install-Channel Verification Checklist”Run these after a release:
cargo search edgecrab-cli --limit 1npm view edgecrab-cli versionpython -m pip index versions edgecrab-clidocker run --rm --entrypoint /bin/sh ghcr.io/raphaelmansuy/edgecrab:latest -lc 'which edgecrab && edgecrab --version'Then test fresh installs:
npm install -g edgecrab-cliwhich edgecrabedgecrab --version
python -m pip install --upgrade edgecrab-cliwhich edgecrabedgecrab --version
cargo install edgecrab-cli --locked --forcewhich edgecrabedgecrab --versionAlso verify the docs site and Homebrew tap:
curl -I https://www.edgecrab.combrew info raphaelmansuy/tap/edgecrabHomebrew Tap Sync
Section titled “Homebrew Tap Sync”The Homebrew formula lives in the external repository raphaelmansuy/homebrew-tap.
This repository now includes:
scripts/update-homebrew-formula.sh.github/workflows/release-homebrew-tap.yml
The workflow downloads edgecrab-checksums.txt from the GitHub Release, updates Formula/edgecrab.rb, and pushes the tap update with HOMEBREW_TAP_PUSH_TOKEN.
If the tap is behind, Homebrew users will keep seeing the old version even when npm, PyPI, crates.io, and Docker are already current.
Docs And Site Checks
Section titled “Docs And Site Checks”The site has historically drifted when hard-coded version claims aged out. Prefer source-derived facts or generic wording for:
- release version
- provider count
- tool count
- gateway count
- install-channel claims
Before merging a release-related docs change:
cd sitepnpm installpnpm buildMake sure https://www.edgecrab.com is updated after the deploy workflow completes.