mirror of
https://github.com/kanidm/kanidm.git
synced 2025-05-29 04:13:54 +02:00
110 lines
2.8 KiB
Markdown
110 lines
2.8 KiB
Markdown
# Release Checklist
|
|
|
|
## Pre-Reqs
|
|
|
|
```bash
|
|
cargo install --force \
|
|
cargo-audit \
|
|
cargo-outdated \
|
|
cargo-udeps \
|
|
cargo-machete
|
|
```
|
|
|
|
## Pre Release Check List
|
|
|
|
### Start a release
|
|
|
|
- [ ] `git checkout -b "$(date +%Y%m%d)-pre-release"`
|
|
|
|
### Cargo Tasks
|
|
|
|
- [ ] Update MSRV if applicable
|
|
- [ ] `cargo update`
|
|
- [ ] `RUSTC_BOOTSTRAP=1 cargo udeps`
|
|
- [ ] `cargo machete --with-metadata`
|
|
- [ ] `cargo outdated -R`
|
|
- [ ] `cargo audit`
|
|
- [ ] `cargo test`
|
|
|
|
- [ ] setup a local instance and run orca (TBD)
|
|
- [ ] store a copy an an example db (TBD)
|
|
|
|
### Code Changes
|
|
|
|
- [ ] upgrade crypto policy values if required (see `libs/crypto/src/lib.rs` -> `CryptoPolicy`)
|
|
- [ ] check for breaking db entry changes.
|
|
|
|
### Administration
|
|
|
|
- [ ] Update `RELEASE_NOTES.md`
|
|
- [ ] Update `README.md`
|
|
- [ ] `cargo test`
|
|
- [ ] `git commit -a -m 'chore: Release Notes'`
|
|
- [ ] `git push origin "$(date +%Y%m%d)-pre-release"`
|
|
- [ ] Merge PR
|
|
|
|
### Git Management
|
|
|
|
- [ ] `git checkout master`
|
|
- [ ] `git pull`
|
|
- [ ] git checkout -b 1.x.0 (Note no v to prevent ref conflict)
|
|
- [ ] update version to set pre tag in ./Cargo.toml
|
|
- [ ] `git commit -m "Release $(cargo metadata --format-version 1 | jq '.packages[] | select(.name=="kanidm_proto") | .version')-pre"`
|
|
- [ ] `git tag v$(cargo metadata --format-version 1 | jq '.packages[] | select(.name=="kanidm_proto") | .version')-pre`
|
|
|
|
- [ ] Final inspect of the branch
|
|
|
|
- [ ] `git push origin "$(cargo metadata --format-version 1 | jq '.packages[] | select(.name=="kanidm_proto") | .version')" --tags`
|
|
|
|
- [ ] github -> Ensure release branch is protected
|
|
|
|
### Follow up
|
|
|
|
- [ ] git checkout master
|
|
- [ ] git pull
|
|
- [ ] git checkout -b YYYYMMDD-dev-version
|
|
- [ ] update version to +1 and add dev tag in ./Cargo.toml
|
|
- [ ] update `DOMAIN_*_LEVEL` in server/lib/src/constants/mod.rs
|
|
- [ ] update and add new migrations
|
|
|
|
## Final Release Check List
|
|
|
|
### Git Management Part Deux
|
|
|
|
- [ ] git checkout 1.x.0
|
|
- [ ] git pull origin 1.x.0
|
|
|
|
- [ ] update version to remove pre tag in ./Cargo.toml
|
|
- [ ] update Makefile to set docker image to latest
|
|
- [ ] git commit -a -m 'Release 1.x.0'
|
|
- [ ] git tag v1.x.0
|
|
- [ ] git push origin 1.x.0 --tags
|
|
|
|
- [ ] github -> create new release based on tag (not branch) - use tag because then tools will get
|
|
the tag + patches we apply.
|
|
|
|
### Community
|
|
|
|
- [ ] Publish release announcement
|
|
|
|
### Cargo publish
|
|
|
|
- [ ] publish `kanidm_proto`
|
|
- [ ] publish `sketching`
|
|
- [ ] publish `kanidm_utils_users`
|
|
- [ ] publish `kanidm_lib_file_permissions`
|
|
- [ ] publish `kanidm_lib_crypto`
|
|
- [ ] publish `kanidm_build_profiles`
|
|
- [ ] publish `kanidm_client`
|
|
- [ ] publish `kanidm_tools`
|
|
|
|
### Docker
|
|
|
|
- [ ] docker buildx use cluster
|
|
- [ ] `make buildx`
|
|
- [ ] Update the readme on docker <https://hub.docker.com/repository/docker/kanidm/server>
|
|
|
|
### Distro
|
|
|
|
- [ ] vendor and release to build.opensuse.org
|