Release Guide
These docs outline the process for releasing a new version of Basilisk. It is intended for developers and maintainers of the Basilisk software.
The high level steps to release a new version of Basilisk are as follows:
Create a new branch
v2_X_Yondevelopfor the release.Modify the version number in
docs/source/bskVersion.txtto reflect the new release.Add release date to
docs/source/Support/bskReleaseNotes.rstanddocs/source/Support/bskKnownIssues.rstfiles.Ensure documentation builds without warnings or errors.
Push branch to origin and do a PR.
Merge
developintomasterAdd release tag
v2.X.YtomasterCreate a Release on GitHub
To prepare develop for the next beta cycle:
Create
beta_X_YbranchModify the version number in
docs/source/bskVersion.txtto reflect the new beta cycle such asv2_X_Y_beta.Update
docs/source/Support/bskReleaseNotes.rstanddocs/source/Support/bskKnownIssues.rstfiles to next beta cycleMake PR and push to
develop
The following documentation provides detailed instructions for some of these steps.
Updating the Version Number
The version number is stored in the docs/source/bskVersion.txt file. This file
gets read by the pyproject.toml during packaging to set the version of the
package. Previously, this file was updated automatically during the CI/CD
process; however, it must now be updated manually to prevent excessive version
bumps.
Update this file to reflect the new version number following semantic versioning guidelines (e.g., MAJOR.MINOR.PATCH).
Updating the Changelog
The changelog is located in the docs/source/Support/bskReleaseNotes.rst file.
Before releasing a new version, ensure that this file is updated to include
all relevant changes, bug fixes, and new features that are part of the release.
Add a release date after the version number.
Creating a Release Branch
Active development occurs on the develop branch. Once all commits for a new
minor release have been merged into develop, and the version number and
changelog have been updated, a new release branch should be created.
The release branch is named after the minor version (e.g. 2.9) and is a
long-lived maintenance branch. It represents the released X.Y line and is
used for the initial release as well as any future patch releases (X.Y.1,
X.Y.2, etc.).
All patches and fixes for the X.Y release line must be made on this branch.
Any changes applied to the release branch should also be merged or cherry-picked
back into develop to ensure they are included in future releases.
Creating a Release on GitHub
After pushing the release tag, create a new release on GitHub:
Go to “Code” tab, on right column select Releases
Select “Draft new Release”
Select correct tag
v2.X.YonmasterAdd title “Basilisk v2.X.Y”
Add release notes
Remove all
:ref:statements from release notesBottom of page, press “Publish Release” button
This will make the release official and provide users with information about the new version.
Patch and Backport Workflow
Once a release branch (X.Y) exists we only maintain this latest X.Y release on master
and the current beta on develop.
Where to make changes
New features or breaking changes: Go directly into
developfor the next beta cycle (never into a release branch).Bug fixes for an existing release:
Create branch on develop to test the fix.
Create PR for this fix branch, don’t update beta release notes
On master, create a patch branch and cherry pick over the fix commit(s)
On the patch branch, update the release notes for
v2.X.Ywith a release dateMerge this branch into
masterCreate a Release on GitHub
Charry pick the commit that updated the
v2.X.Yrelease notes back into the beta cycle ondevelop.
Important
Never develop directly on multiple branches in parallel for the same fix. This leads to divergence and hard-to-resolve conflicts.
Do not merge
developback intoX.Yafter the release branch is created. Release branches must remain stable and focused on fixes only.Cherry-picks should be small, focused, and preferably reference the original commit hash in the message.