Skip to content

Latest commit

 

History

History
32 lines (24 loc) · 1.87 KB

RELEASE_CHECKLIST.md

File metadata and controls

32 lines (24 loc) · 1.87 KB

Release checklist

This document contains the workflows to follow for all changes and releases to hpo. The worklow assures that the main branch always holds a functional version of hpo with all tests passing. The main branch can be ahead of the official crates.io release. New versions for crates.io releases are created independently of the regular updates and will contain all changes present in the main branch at that point. My goal is to automate the version bump and release process using Github Actions at some point.

This procedure is just a suggestion at this point and can be modified if needs arise.

Regular updates / Normal development

  • Develop in a dedicated branch (or your own fork): git checkout -b <MY_FEATURE_NAME>
  • Rebase onto main: git rebase main <MY_FEATURE_NAME>
  • Double check for good code, sensible API and well-explained docs
  • Run format, clippy, tests and doc-generation: cargo fmt --check && cargo clippy && cargo test && cargo doc
  • Push to remote: git push -u origin <MY_FEATURE_NAME>
  • Create merge/pull request to main branch
  • Once CICD passes, changes are merged to main

Version bumps

  • Make dedicated branch named after version: git checkout main && git pull && git checkout -b release/<MAJOR>.<MINOR>.<PATCH>
  • Update Cargo.toml with new version
  • Update dependencies if needed and possible
  • Check if README or docs need update
  • Add Changelog summary of changes
  • Run format, clippy, tests and doc-generation: cargo fmt --check && cargo clippy && cargo test && cargo doc
  • add git tag with version: git tag v<MAJOR>.<MINOR>.<PATCH>
  • push to remote, also push tags: git push -u origin release/<MAJOR>.<MINOR>.<PATCH> && git push tags
  • Merge into main
  • update main branch locally: git checkout main && git pull
  • release to cargo: cargo publish