2021-04-08 21:33:46 +00:00
# Release Checklist
2024-04-04 21:18:00 +00:00
## Minor Version
### Minor Pre-release
2022-03-19 03:54:15 +00:00
2021-04-08 21:33:46 +00:00
1. Check regressions tag.
2024-04-04 21:18:00 +00:00
2. Check appropriate milestone, and close it.
2021-04-08 21:33:46 +00:00
3. Check GitHub Projects page for staleness.
4. Update change log.
5. Create migration guide.
6. Write blog post.
7. Update book.
Fix release workflow (#4903)
# Objective
While playing with the code, I found some problems in the recently merged version-bumping workflow:
- Most importantly, now that we are using `0.8.0-dev` in development, the workflow will try to bump it to `0.9.0` :sob:
- The crate filter is outdated now that we have more crates in `tools`.
- We are using `bevy@users.noreply.github.com`, but according to [Github help](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#about-commit-email-addresses), that email address means "old no-reply email format for the user `bevy`". It is currently not associated with any account, but I feel this is still not appropriate here.
## Solution
- Create a new workflow, `Post-release version bump`, that should be run after a release and bumps version from `0.X.0` to `0.X+1.0-dev`. Unfortunately, cargo-release doesn't have a builtin way to do this, so we need to parse and increment the version manually.
- Add the new crates in `tools` to exclusion list. Also removes the dependency version specifier from `bevy_ecs_compile_fail_tests`. It is not in the workspace so the dependency version will not get automatically updated by cargo-release.
- Change the author email to `41898282+github-actions[bot]@users.noreply.github.com`. According to the discussion [here](https://github.com/actions/checkout/issues/13#issuecomment-724415212) and [here](https://github.community/t/github-actions-bot-email-address/17204/6), this is the email address associated with the github-actions bot account.
- Also add the workflows to our release checklist.
See infmagic2047#5 and infmagic2047#6 for examples of release and post-release PRs.
2022-06-06 15:47:51 +00:00
8. Bump version number for all crates, using the "Release" workflow.
2024-04-04 21:18:00 +00:00
* Change the commit message to be nicer
2022-03-19 03:54:15 +00:00
9. Create tag on GitHub.
2024-04-04 21:18:00 +00:00
10. Edit Github Release. Add links to the `Release announcement` and `Migration Guide` .
2024-02-23 18:36:07 +00:00
11. Bump `latest` tag to most recent release.
12. Run this workflow to update screenshots:
2023-11-04 18:43:15 +00:00
* < https: // github . com / bevyengine / bevy-website / actions / workflows / update-screenshots . yml >
* _This will block blog post releases (and take ~40 minutes) so do it early_.
2024-04-04 21:18:00 +00:00
13. Run this workflow to update wasm examples:
* < https: // github . com / bevyengine / bevy-website / actions / workflows / build-wasm-examples . yml >
2022-03-19 03:54:15 +00:00
2024-04-04 21:18:00 +00:00
### Minor Release
2022-03-19 03:54:15 +00:00
1. Release on crates.io
2024-04-04 21:18:00 +00:00
* `bash tools/publish.sh`
2022-03-19 03:54:15 +00:00
2. Announce on:
2021-04-08 21:33:46 +00:00
1. HackerNews
2. Twitter
3. Reddit: /r/bevy, /r/rust, /r/rust_gamedev
4. Discord: Bevy, Game Development in Rust, Rust Programming Language Community
5. This Month in Rust Game Development newsletter
6. This Week in Rust newsletter
2022-03-19 03:54:15 +00:00
2024-04-04 21:18:00 +00:00
### Minor Post-release
2022-03-19 03:54:15 +00:00
Fix release workflow (#4903)
# Objective
While playing with the code, I found some problems in the recently merged version-bumping workflow:
- Most importantly, now that we are using `0.8.0-dev` in development, the workflow will try to bump it to `0.9.0` :sob:
- The crate filter is outdated now that we have more crates in `tools`.
- We are using `bevy@users.noreply.github.com`, but according to [Github help](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#about-commit-email-addresses), that email address means "old no-reply email format for the user `bevy`". It is currently not associated with any account, but I feel this is still not appropriate here.
## Solution
- Create a new workflow, `Post-release version bump`, that should be run after a release and bumps version from `0.X.0` to `0.X+1.0-dev`. Unfortunately, cargo-release doesn't have a builtin way to do this, so we need to parse and increment the version manually.
- Add the new crates in `tools` to exclusion list. Also removes the dependency version specifier from `bevy_ecs_compile_fail_tests`. It is not in the workspace so the dependency version will not get automatically updated by cargo-release.
- Change the author email to `41898282+github-actions[bot]@users.noreply.github.com`. According to the discussion [here](https://github.com/actions/checkout/issues/13#issuecomment-724415212) and [here](https://github.community/t/github-actions-bot-email-address/17204/6), this is the email address associated with the github-actions bot account.
- Also add the workflows to our release checklist.
See infmagic2047#5 and infmagic2047#6 for examples of release and post-release PRs.
2022-06-06 15:47:51 +00:00
1. Bump version number for all crates to next versions, as `0.X-dev` , using the "Post-release version bump" workflow, to ensure properly displayed version for [Dev Docs ](https://dev-docs.bevyengine.org/bevy/index.html ).
2022-03-19 03:54:15 +00:00
2. Update Bevy version used for Bevy book code validation to latest release.
2024-04-04 21:18:00 +00:00
## Patch
### Patch Pre-release
1. Check appropriate milestone.
2. Close the milestone, open the next one if anything remains and transfer them.
3. Bump version number for all crates, using the command from the "Release" workflow locally, with `patch` for the new version. At the time of writing this:
* `cargo release patch --workspace --no-publish --execute --no-tag --no-confirm --no-push --dependent-version upgrade --exclude ci --exclude errors --exclude bevy_mobile_example --exclude build-wasm-example`
* Change the commit message to be nicer
4. Create tag on GitHub.
5. Edit Github Release. Add link to the comparison between this patch and the previous version.
6. Bump `latest` tag to most recent release.
7. Run this workflow to update screenshots:
* < https: // github . com / bevyengine / bevy-website / actions / workflows / update-screenshots . yml >
8. Run this workflow to update wasm examples:
* < https: // github . com / bevyengine / bevy-website / actions / workflows / build-wasm-examples . yml >
### Patch Release
1. Release on crates.io
* `bash tools/publish.sh`
2. Announce on:
1. Discord: Bevy
### Patch Post-Release
2024-06-07 01:56:25 +00:00
## Release Candidate
### RC Pre-Release
1. Check appropriate milestone.
2. Create a branch for the release.
3. Bump version number for all crates, using the command from the "Release" workflow locally, with `rc` for the new version. At the time of writing this:
* `cargo release rc --workspace --no-publish --execute --no-tag --no-confirm --no-push --dependent-version upgrade --exclude ci --exclude errors --exclude bevy_mobile_example --exclude build-wasm-example`
* Change the commit message to be nicer
4. Create tag on GitHub.
5. Edit Github Release. Add link to the comparison between this rc and the previous version.
### RC Release
1. Release on crates.io
* `bash tools/publish.sh`
2. Announce on:
1. Discord: Bevy, #dev -announcements
### RC Post-Release