|
| 1 | +# Release Process |
| 2 | + |
| 3 | +## 0. Pre-Release Checklist |
| 4 | + |
| 5 | +Before starting the release process, verify the following: |
| 6 | + |
| 7 | +- [GitHub Action for Unit Tests are green on main](https://github.com/MLBazaar/BTB/actions/workflows/tests.yml?query=branch:main) |
| 8 | +- [GitHub Action for Install Tests are green on main](https://github.com/MLBazaar/BTB/actions/workflows/install_test.yaml?query=branch:main) |
| 9 | +- Get agreement on the version number to use for the release. |
| 10 | + |
| 11 | +#### Version Numbering |
| 12 | + |
| 13 | +BTB uses [semantic versioning](https://semver.org/). Every release has a major, minor and patch version number, and are displayed like so: `<majorVersion>.<minorVersion>.<patchVersion>`. |
| 14 | + |
| 15 | +## 1. Create BTB release on GitHub |
| 16 | + |
| 17 | +#### Create Release Branch |
| 18 | + |
| 19 | +1. Branch off of BTB main. For the branch name, please use "release_vX.Y.Z" as the naming scheme (e.g. "release_v0.3.1"). |
| 20 | + |
| 21 | +#### Bump Version Number |
| 22 | + |
| 23 | +1. Bump `__version__` in `baytune/version.py`, and `tests/test_version.py`. |
| 24 | + |
| 25 | +#### Update Changelog |
| 26 | + |
| 27 | +1. Replace top most "What’s new in" in `docs/changelog.rst` with the current date |
| 28 | + |
| 29 | + ``` |
| 30 | + What’s new in 0.3.1 (January 4, 2023) |
| 31 | + ===================================== |
| 32 | + ``` |
| 33 | +
|
| 34 | +2. Remove any unused sections for this release (e.g. Enhancements, Fixes, Changes) |
| 35 | +3. The release PR does not need to be mentioned in the list of changes |
| 36 | +
|
| 37 | +#### Create Release PR |
| 38 | +
|
| 39 | +A release PR should have **the version number as the title** and the notes for that release as the PR body text. |
| 40 | +
|
| 41 | +Checklist before merging: |
| 42 | +
|
| 43 | +- The title of the PR is the version number. |
| 44 | +- All tests are currently green on checkin and on `main`. |
| 45 | +- PR has been reviewed and approved. |
| 46 | +
|
| 47 | +## 2. Create GitHub Release |
| 48 | +
|
| 49 | +After the release pull request has been merged into the `main` branch, it is time draft [the GitHub release](https://github.com/HDI-Project/BTB/releases/new) |
| 50 | +
|
| 51 | +- The target should be the `main` branch |
| 52 | +- The tag should be the version number with a v prefix (e.g. v0.3.1) |
| 53 | +- Release title is the same as the tag |
| 54 | +- This is not a pre-release |
| 55 | +- Publishing the release will automatically upload the package to PyPI |
0 commit comments