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.
- 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.
- Create a branch called
rel_vX.Y.ZrcN
with 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.rst
with 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.py
from 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.ZrcN
Create a checklist to ensure:
CHANGELOG.rst
is finalizedlong_description.rst
is finalized- new contributors are added to
.zenodo.json
- ask 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.rst
and 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.rst
and add it below theCHANGES
section in the text provided by Release Drafter. - Tag the release as
vX.Y.ZrcN
where 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
dockerhub
andpypi
correctly. - If not successful, create another branch called
rel_vX.Y.ZrcN
with N being incremented. - Make the necessary changes to fix deployment and go back to step 5.
- If successful, create a new tag
vX.Y.Z
copying 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.