kanidm/project_docs/RELEASE_CHECKLIST.md
2024-02-08 09:54:07 +10:00

2 KiB

Release checklist

Pre-Reqs

cargo install cargo-audit
cargo install cargo-outdated
cargo install cargo-udeps
cargo install wasm-bindgen-cli

Check List

Start a release

  • git checkout -b YYYYMMDD-release

Cargo Tasks

  • RUSTC_BOOTSTRAP=1 cargo udeps
  • cargo outdated -R
  • cargo audit
  • cargo test

Code Changes

  • upgrade crypto policy values if requires
  • bump index version in constants
  • check for breaking db entry changes.

Administration

  • update version to remove dev tag in ./Cargo.toml
  • update version to remove dev tag in ./Makefile
  • cargo test
  • build wasm components with release profile
  • Update RELEASE_NOTES.md
  • Update README.md
  • git commit
  • git push origin YYYYMMDD-release
  • Merge PR

Git Management

  • git checkout master

  • git pull

  • git checkout -b 1.1.x (Note no v to prevent ref conflict)

  • git tag v1.1.x

  • Final inspect of the branch

  • git push origin 1.1.x

  • git push origin 1.1.x --tags

  • github -> Ensure release branch is protected

  • github -> create new release based on tag (not branch) - use tag because then tools will get the tag + patches we apply.

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

Distro

  • vendor and release to build.opensuse.org

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 version to +1 and add dev tag in ./Makefile