crates.io releases are automated via GitHub actions and triggered by pushing a tag.
-
Record a new demo gif if necessary. The preferred tool for this is vhs (installation instructions in README).
cargo build --example demo2 vhs examples/demo2.tape
-
Switch branches to the images branch and copy demo2.gif to examples/, commit, and push.
-
Grab the permalink from https://github.com/ratatui-org/ratatui/blob/images/examples/demo2.gif and append
?raw=true
to redirect to the actual image url. Then update the link in the main README. Avoid adding the gif to the git repo as binary files tend to bloat repositories. -
Bump the version in Cargo.toml.
-
Ensure CHANGELOG.md is updated. git-cliff can be used for generating the entries.
-
Ensure that any breaking changes are documented in BREAKING-CHANGES.md
-
Commit and push the changes.
-
Create a new tag:
git tag -a v[X.Y.Z]
-
Push the tag:
git push --tags
-
Wait for Continuous Deployment workflow to finish.
Alpha releases are automatically released every Saturday via cd.yml and can be manually be created when necessary by triggering the Continuous Deployment workflow.
We automatically release an alpha release with a patch level bump + alpha.num weekly (and when we need to manually). E.g. the last release was 0.22.0, and the most recent alpha release is 0.22.1-alpha.1.
These releases will have whatever happened to be in main at the time of release, so they're useful for apps that need to get releases from crates.io, but may contain more bugs and be generally less tested than normal releases.
See #147 and #359 for more info on the alpha release process.