2023-03-19 17:11:15 +00:00
|
|
|
# Creating a Release
|
|
|
|
|
2024-08-25 08:02:29 +00:00
|
|
|
Our release strategy is:
|
|
|
|
|
|
|
|
> Release major versions with detailed summaries when necessary, while releasing minor versions
|
|
|
|
> weekly or as needed without extensive announcements.
|
|
|
|
>
|
|
|
|
> Versioning scheme being `0.x.y`, where `x` is the major version and `y` is the minor version.
|
|
|
|
|
2023-06-11 14:23:23 +00:00
|
|
|
[crates.io](https://crates.io/crates/ratatui) releases are automated via [GitHub
|
|
|
|
actions](.github/workflows/cd.yml) and triggered by pushing a tag.
|
|
|
|
|
2023-08-13 16:21:00 +00:00
|
|
|
1. Record a new demo gif if necessary. The preferred tool for this is
|
|
|
|
[vhs](https://github.com/charmbracelet/vhs) (installation instructions in README).
|
2023-06-11 14:23:23 +00:00
|
|
|
|
2023-06-11 20:33:25 +00:00
|
|
|
```shell
|
2023-09-21 08:47:23 +00:00
|
|
|
cargo build --example demo2
|
|
|
|
vhs examples/demo2.tape
|
2023-06-11 20:33:25 +00:00
|
|
|
```
|
2023-06-11 14:23:23 +00:00
|
|
|
|
2023-09-21 08:47:23 +00:00
|
|
|
1. Switch branches to the images branch and copy demo2.gif to examples/, commit, and push.
|
2024-08-21 18:35:08 +00:00
|
|
|
1. Grab the permalink from <https://github.com/ratatui/ratatui/blob/images/examples/demo2.gif> and
|
2023-09-21 08:47:23 +00:00
|
|
|
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.
|
2023-03-19 17:11:15 +00:00
|
|
|
|
|
|
|
1. Bump the version in [Cargo.toml](Cargo.toml).
|
2023-06-11 14:23:23 +00:00
|
|
|
1. Ensure [CHANGELOG.md](CHANGELOG.md) is updated. [git-cliff](https://github.com/orhun/git-cliff)
|
|
|
|
can be used for generating the entries.
|
2023-09-28 08:00:43 +00:00
|
|
|
1. Ensure that any breaking changes are documented in [BREAKING-CHANGES.md](./BREAKING-CHANGES.md)
|
2023-06-11 14:23:23 +00:00
|
|
|
1. Commit and push the changes.
|
2024-08-25 08:02:29 +00:00
|
|
|
1. Create a new tag: `git tag -a v[0.x.y]`
|
2023-06-11 14:23:23 +00:00
|
|
|
1. Push the tag: `git push --tags`
|
2024-08-21 18:35:08 +00:00
|
|
|
1. Wait for [Continuous Deployment](https://github.com/ratatui/ratatui/actions) workflow to
|
2023-06-11 14:23:23 +00:00
|
|
|
finish.
|
2023-09-28 09:27:03 +00:00
|
|
|
|
|
|
|
## Alpha Releases
|
|
|
|
|
|
|
|
Alpha releases are automatically released every Saturday via [cd.yml](./.github/workflows/cd.yml)
|
|
|
|
and can be manually be created when necessary by triggering the [Continuous
|
2024-08-21 18:35:08 +00:00
|
|
|
Deployment](https://github.com/ratatui/ratatui/actions/workflows/cd.yml) workflow.
|
2023-09-28 09:27:03 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2024-08-21 18:35:08 +00:00
|
|
|
See [#147](https://github.com/ratatui/ratatui/issues/147) and
|
|
|
|
[#359](https://github.com/ratatui/ratatui/pull/359) for more info on the alpha release process.
|