These instructions show the necessary steps to release a new BioDynaMo version. The following steps demonstrate the 1.0 release
Production releases have an even minor version number (e.g. 1.0, 1.02, 1.04, ...). Development versions use odd minor version numbers.
-
Update the version in
CMakeLists.txtincluding a "0" as patch version numberproject(BioDynaMo LANGUAGES VERSION "1.0.0")If the project is built without a github repository, the automatic version number generation does not work. This is the fallback solution.
- Create release notes in file
doc/user_guide/release_notes_v1.0.mdand add the page todoc/sidebars/userguide.yamlUse the following command to obtain a list of contributorsgit shortlog -sn --no-merges v0.8..HEAD, wherev0.8is the last production release. The list is ordered by the number of contributions. - Consider writing a blog post
- Create a new commit (commit message: "Release v1.0") with these changes, run it through CI and add it to the master branch if all lights are green.
-
Go to BioDynaMo's github project and create a new release
Tag version: v1.0 Release Title: BioDynaMo 1.0 Description: <insert the release notes here> - Create a new branch
v1.0-patchesbranching off from the release commit and push it. -
Update the one-line install script in file
util/installBDM_BRANCH=v1.0-patchesand commit it directly to master (commit message "Update branch of one-line install script").
Now we finished releasing 1.0.
The only part missing now is to tag the development release (v1.01).
-
Update the version in
CMakeLists.txtincluding a "0" as patch version numberproject(BioDynaMo LANGUAGES VERSION "1.01.0") - Create a new commit (commit message: "Release development version 1.01") and add it to the master branch.
-
Create a tag
v1.01for the previous commit and push it to githubgit tag v1.01 git push origin v1.01
Now we have successfully released v1.0 and prepared the repository for new developments.
The one-line install script will install the latest production release with all hotfixes in the corresponding patch branch. Commits for the next release will be added to the master branch.
Commits to the patch branch should always be cherry picked. Do not rebase it on master beyond the development tag! Otherwise the automatic versioning will be wrong.