Release Instructions¶
In order to create a release for NiBetaSeries, we must make sure the pre-conditions are
met, and that we follow the release instructions.
We follow semantic versioning to define whether the release
should be a patch or a minor version.
Please note while the major version is 0, this project will be considered to be
in development and backwards incompatible changes may occur without incrementing the
major version.
Pre-Conditions¶
Continuous integration (circleci and travisci) are passing tests
Code coverage is above 70%
There has been at least one pull request merged since the previous release.
Instructions¶
Create a branch called
rel_vX.Y.ZrcNwith X, Y, and Z replaced with the proposed version. N represents the current release candidate, starting with the number 1.We use Release Drafter to annotate the release notes in github.
Copy the generated text into
CHANGELOG.rstwith a sub-heading that indicates version, month, day, and year. Add information underneath the header thanking contributors and give brief summary of the changes made. Add and commitCHANGELOG.rst.Run
create_long_description.pyfrom the base of the repository. Add and commitlong_description.rst.Push the branch onto your forked repository and open a pull request.
Name the Pull Request
[REL] vX.Y.ZrcNCreate a checklist to ensure:
CHANGELOG.rstis finalizedlong_description.rstis finalizednew contributors are added to
.zenodo.jsonask repeat contributors if they want to be a creator.
other issues that pop up during the release (for example, deployment is not working)
After all creators review
CHANGELOG.rstand optionally other changes, merge the pull request.Go to the Releases section on the repository and create a new release.
Copy the brief summary from
CHANGELOG.rstand add it below theCHANGESsection in the text provided by Release Drafter.Tag the release as
vX.Y.ZrcNwhere X, Y, and Z are the major, minor, and patch numbers respectively, and N is the release candidate number starting with 1.Mark the release as a pre-release.
Create the release and check if nibetaseries is being built and deployed on
dockerhubandpypicorrectly.If not successful, create another branch called
rel_vX.Y.ZrcNwith N being incremented.Make the necessary changes to fix deployment and go back to step 5.
If successful, create a new tag
vX.Y.Zcopying all release drafter information from the last successful release candidate.
Yay! If you’ve followed these instructions, you’ll be a release pro in no time.