avml/RELEASE_PROCESS.md

1.4 KiB

Release Process

The following procedures assume the following:

  1. You are running on an Ubuntu based system. (Currently tested using Ubuntu 20.04)
  2. You can already successfully build and test AVML using ./eng/ci.sh
  3. You are logged into an Azure subscription using az login.
  4. You are logged into crates.io using cargo login
  5. You install sudo to root

If you are the current maintainer of this package:

  1. Create a branch for updating the version number of AVML
  2. Bump the version in Cargo.toml
  3. Build & Locally test with the updated version using: ./eng/ci.sh
  4. Test on multiple linux versions using: ./eng/test-on-azure.sh
  5. Commit the updated Cargo.toml and Cargo.lock
  6. Submit & merge a PR from this branch with the updated version information to the git repo.
  7. After the PR is merged, pull down and checkout main.
  8. Verify the source as is can be packaged for crates.io using: cargo package --locked
  9. Tag the new version in git: git tag vX.X.X
  10. Push the new version to GitHub: git push --tags
  11. Create a new release on GitHub with the aforementioned tag and populate it with this: git log --pretty=format:"- %s" --reverse refs/tags/PREV_TAG...refs/tags/NEW_TAG
  12. Add the build artifacts from GitHub Actions
  13. Publish the crate: cargo publish