Release Workflow
Versioning is fully automated using conventional commits and release-plz.
Channels
Version is read from Cargo.toml (managed by release-plz via conventional commits).
How it works
- Conventional commits land on
main(feat:,fix:,feat!:) - release-plz opens a "chore: release" PR with bumped versions
- You merge the PR
- release-plz publishes to crates.io and creates a GitHub release
- The GitHub release automatically triggers the npm stable publish (
latesttag)
Commit message → version bump
CI Workflows
Why no crates.io for PRs?
crates.io versions are permanent — you can't delete them, only yank. Publishing a crate for every PR commit would pollute the version history. npm has dist-tags so pre-releases are only visible when explicitly requested.