-
Create a branch (off of the main branch commit) you want to release
-
Name the branch with the patch part set to 'x'. For example 2.0.x
-
-
Test the branch to make sure there are no obvious bugs. If bugs are found, create relevant github issues, fix the bugs, push the fixes to the main branch and cherry-pick those same fixes to the newly created branch.
-
When you are ready to create a release, first change the version of proton in the Containerfile from main to the latest released version of proton and commit the change. Next, create a tag on the commit in the branch that you want to create the release and push the tag to the skupper-router git repo. The tag name should contain the release number you are trying to release E.g. 2.0.0
-
Note that there is no need to change any versions on the branch. The tag name will be used as the container’s tag
-
-
If you are preparing a release candidate, then the tag name should contain the release number and a suffix that matches the regex pattern
-rc[0-9]+
(E.g. 2.4.0-rc1) -
The Release skupper-router workflow will be automatically triggered once a tag matching the pattern x.y.z (E.g. 2.0.0) is pushed to the git repo. This release workflow will:
-
Compile the skupper-router project using the newly created tag and using the latest release version of proton specified in the Containerfile and push the image to quay.io
-
The skupper-router image tag name will be obtained from the name of the tag that was used to initiate the release workflow
-
An extra tag will be added, and it will be composed by the tag used to initiate the release workflow and the build number of the related tag, which is automatically determined based on published image tags (E.g. for 2.0.0, it can be 2.0.0-1, 2.0.0-2 or 2.0.0-N).
-
-
Creates a draft release which can be seen here - https://github.com/skupperproject/skupper-router/releases/
-
Note that the draft release will NOT be created for release candidates, therefore if you are preparing a release candidate you don’t need to publish anything.
-
-
-
Edit the draft release by clicking the pencil link and verify if the details in the draft release are accurate.
-
Add more details to the text box if necessary. The text box should already contain a link to the issues that were fixed in this milestone.
-
-
When everything has been verified click the Publish release button to publish the release.
-
Go to the Milestones link and make sure the release milestone is 100% complete and click on the "Close" link for that milestone. This will close the milestone and you will be unable to assign any more issues to the closed milestone.
-
Create the next milestone if necessary.
-
There is no need to advance any versions on the main branch.
Re-spinning an already released skupper-router version to include CVE changes from other component/base images
-
Sometimes there is a need to re-release an already released version of skupper-router, for example to include any CVE fixes included in one of the component/base images. In this case, we use the same version number as the earlier released version since there are no changes to the skupper-router code base.
-
Before re-spinning an image
-
push a test tag. For example create a tag 2.3.0-RESPIN-TEST on top of the existing 2.3.0 tag
-
Create a test image using the "Run Workflow" dropdown in the "Manual skupper-router image build" page from the Actions tab in github. Make sure the "Push :latest tag?" checkbox is unchecked while creating this test re-spin.
-
Once the test image is created, use it in skupper-ci and make sure all CI tests pass.
-
-
Once the skupper CI tests are successful, go to the Respin a skupper-router image for a released tag action page and click the
Run workflow
dropdown. -
In the
Use workflow from
field, choosemain
. -
In the field that says:
A version (git tag) that has already been released
, enter the github tag to respin (i.e.: 2.4.2). -
Check the 'Push :latest tag?' checkbox if you want the :latest tag to be pushed.
-
Then click button
Run workflow
.