-
Notifications
You must be signed in to change notification settings - Fork 22
Release Management
Dr. Martin Brumm edited this page Mar 31, 2021
·
4 revisions
We use semantic versioning for our releases. This is represented by the dotted version numbers: #major.#minor.#maintenance
.
The git repository is laid out like this:
- branches:
- master - All development happens here. Pull-requests should be made against master
- x.y - Maintenance branches for tracking bugfixes
- your_feature_branch - topic branches for features that are under development
- tags:
- releases/x.y.z - Tags representing each release.
- Create a tag named
releases/x.y.z
wherex.y.z
is the version number being released. - GitHub Actions will trigger based upon the tag name and create the release.
- Edit the generated release document to include the changelogs, release notes, etc.
- If this is a ".0" release, create a maintenance branch. (e.g. If we're releasing 1.0.0 or 1.2.0, create a branch named
1.0
or1.2
, respectively.
Maintenance releases require some extra steps because we need to ensure that changes we ship with the maintenance release are also included with the main development branch. With Git, there are two ways to do it that are roughly equivalent - merging or cherry-picking.
- PRs with bugfixes are created against the maintenance branch and merged.
- A new tag
releases/x.y.z
is created against the maintenance branch,x.y
, triggering GitHub Actions to create the release. - Edit the release document to include the changelogs, release notes, etc.
- Merge the maintenance branch into master.
- PRs with bugfixes are created against master, as normal.
- Commits merged into master are then cherry-picked into the maintenance branch.
- A new tag
releases/x.y.z
is created against the maintenance branch,x.y
, triggering GitHub Actions to create the release. - Edit the release document to include the changelogs, release notes, etc.
- Change the Readme.md and Changelog.md with the appropriate information.
- change the Version in settings.gradle
- Go to the release on github Rails Release on Github
- Edit any necessary information.
- Download the created release packages.
- Followup on sourceforge:
-
- Create a new folder with the appropriate name corresponding to your release.
-
- Upload the files from above into that folder.
-
- After the upload has finished klick on the i symbol and link the appropriate usage information (which plattform that file is suitable for).