For developers of GOR, people who want to contribute to the GOR codebase or documentation, or people who want to install from source and make local changes to their copy of GOR.
TBD
TBD
This section is for developers of GOR and describes how releases are created from our Gitlab environment.
The steps are as follows:
- Update the relevant milestone.
- Review the operation dashboard.
- Create the release.
- Close the milestone.
- Notify Software Development
- Create a release on GitHub (optional)
- Create a release of Gor Services (optional)
Each one is described in more detail below.
Notes on versioning:
- GOR uses semantic versioning, with
<major>.<minor>.<patch>
format. - We use
-SNAPSHOT
postfix to indicate development version. - We update the version at the time of release so for example
10.2.3-SNAPSHOT
is a development version on top on released version10.2.3
. Next version will be10.2.4
,10.3.0
or11.0.0
After last release there should be milestone created for this release under >Issues>Milestones.
Review all merge requests since the last release and make sure that they along with their underlying issues are tagged with the milestone for the upcoming release.
Also, review all issues with merge requests that have been merged and make sure that they are tagged with the appropriate milestone.
Before creating a GOR release, make sure that there are no issues in the Operations Dashboards related to GOR: https://gitlab.com/-/operations
When creating the actual release we can either release directly from master (now preferred) or create release branch and release from there. Using a relese branch (with dependency locks) is preferred only if we expect that we will be creating patches on very old releases.
Make sure have an open milestone with all the issues, then call:
make release-milestone-from-master MILESTONE=1.1.1
this will update the version, create release notes, create the relase by tagging, and close the milestone.
This can also be done manually.
Exactly like creating a release except only the patch number should change when updating the version number.
Open a shell within in the folder where the GOR repository lies and enter the following with the release version correctly updated:
make create-release-branch BRANCH_VERSION=1.1
make update-master-version NEW_VERSION=1.2.0-SNAPSHOT
This creates a branch with the changes thats need to be merged manually!!- Open a browser and create a tag on the release branch, put the release notes in the Release Notes field. Alternatively we can tag using
make release-from-release BRANCH_VERSION=1.1
.
For patches we have two cases:
- We will usually have the change made to master and then cherry picked to the release branches. In this case we will have only the pull request to master, but we still have to mark the issue with all the releases the fix went into.
- Sometimes we must create pull requests for the patch versions too and in that case the issue will have multiple branches and pull request.
After updating the release branch, open a shell within in the folder where the GOR repository lies and enter the following with the release version correctly updated:
make update-release-version BRANCH_VERSION=1.1 NEW_VERSION=1.1.1
- Open a browser and create a tag on the release branch, put the release notes in the Release Notes field. Alternatively we can tag using
make release-from-release BRANCH_VERSION=1.1
.
If creating the release was successful, update the milestone by adding a description, setting Due Date to today and press the "Close milestone" button. Then create a new milestone for the next release.
Notify software deveplopment that a release has been creating by posting on the #sdev that the release has been created with the features listed under the milestone. Include links to the milestone and the GitHub release.
The release branch and tag for the release should automatically be mirrored to the GOR repository on GitHub. A release on GitHub is created going through the following steps:
- Under Releases, press button "Draft a new release"
- Select the tag for the new release and set that as the release title as well
- In the description, use the same description as used in the milestone in GitLab
- For the binaries go into Package Registry and under org/gorpipe/gor-tools for the release download file
gor-scripts-1.1.0-dist.zip
- Attach file
gor-scripts-1.1.0-dist.zip
by dragging it to the "Attach binaries" box - After uplading the binaries is complete, press the "Publish release" button
Make sure to update the release version as approriate.
To update our customer environments, we will need to create a new release of GOR Services including this GOR release. That process is documented in the GOR Services repo.