4.8 KiB
Release Process
High level view
- Craft Release Branch
- Generate change log
- Commit change log
- Commit update to version.txt
- Merge release branch
- Tag release
- Add Gitlab Release Notes
- Announce
Craft Release Branch
Construct a git branch named release_X.Y
Generate change log
Construct a docs/changelog/X.Y/
folder.
Construct a docs/changelog/X.Y/release-notes.md
file
Use the following template for release-notes.md
:
VTK-m N Release Notes
=======================
# Table of Contents
1. [Core](#Core)
- Core change 1
2. [ArrayHandle](#ArrayHandle)
3. [Control Environment](#Control-Environment)
4. [Execution Environment](#Execution-Environment)
5. [Worklets and Filters](#Worklets-and-Filters)
6. [Build](#Build)
7. [Other](#Other)
# Core
## Core change 1 ##
changes in core 1
# ArrayHandle
# Control Enviornment
# Execution Environment
# Execution Environment
# Worklets and Filters
# Build
# Other
For each individual file in docs/changelog
move them
to the relevant release-notes
section.
- Make sure each title and entry in the table of contents use full vtkm names
vtkm::cont::Field
instead of Field - Make sure each title and entry DOESNT have a peroid at the end
- Make sure any sub-heading as part of the changelog is transformed from
##
to###
. - Entries for
Core
are reserved for large changes that significantly improve VTK-m users life, or are major breaking changes.
Commit change log
Remove each individual change log file from the git repository
using git rm docs/changelog/*.md
Add the changelog to the git history using git add changelog/X.Y/release-notes.md
make a commit with the message:
Add release notes for vX.Y.Z
Commit update to version.txt
Add a second commit to the release_X.Y
branch that contains the update
of the version.txt
file to the correct version. The commit diff should look like:
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.4.0
+1.5.0
The commit message should read:
X.Y.0 is our Nth official release of VTK-m.
The major changes to VTK-m from A.B.C can be found in:
docs/changelog/X.Y/release-notes.md
Merge release branch
At this point you should be ready to merge this branch.
So push to the release_X.Y
branch to gitlab and open a merge request.
The dashboards should produce a configure warning that the new release git tag
can't be found. This is to be expected.
Before completing the merge it is a good idea to review the rendered markdown of the release notes to ensure that they display properly.
On the merge request page, click on the Changes tab and then for the release.X.Y
file click the View file button in the upper right.
Tag Release
Once the merge request is merged we can add the tag.
VTK-m marks the commit that contains the modifications to version.txt
as the tag location, not the merge commit.
After the merge this would be the second commit shown by git log as shown below:
git checkout master
git pull
git log -n2
Merge: d3d3e441 f66d980d
commit f66d980d (HEAD -> release_X.Y.0, gitlab/release_X.Y.0, master)
To place the tag at the correct location you will use the following command:
git tag -a -f vX.Y.Z SHA1
For the above example the SHA1
would be f66d980d
This should prompt you to add a message to the tag. The message should be identical to the one you used in the commit.
Push git tags
Now you will need to push the tag back to gitlab so you will need to do the following:
git remote add origin_update_tags git@gitlab.kitware.com:vtk/vtk-m.git
git push --tags origin_update_tags
git remote rm origin_update_tags
Add Gitlab Release Notes
Now that the VTK-m release is on gitlab we have to add the associated changelog to the release entry on gitlab.
Go to https://gitlab.kitware.com/vtk/vtk-m/-/tags/vX.Y.Z/release/edit
to edit the release page.
Copy the contents of docs/changelog/X.Y/release-notes.md
Email Announcements
Announce the new VTK-m release on the mailing list. You will need to compute the number of merge requests, changelog entries, and maybe # of authors.
To compute the number of unique committers
git log --format="%an" v1.4.0..v1.5.0 | sort -u | wc -l
To compute the number of merge requests
git log v1.4.0..v1.5.0 | grep 'Merge | wc -l
A standard template to use is:
Hi All,
VTK-m 1.5.0 is now released, and a special thanks to everyone that has
contributed to VTK-m since our last release. The 1.5.0 release contains
over 100000 merge requests, and 100000 entries to the changelog .
Below are all the entries in the changelog, with more details at (
https://gitlab.kitware.com/vtk/vtk-m/-/tags/vX.Y.0 ) or in the vtkm
repository at `docs/X.Y/release-notes.md`
1. Core
- Core change 1
2. ArrayHandle
3. Control Environment
4. Execution Environment
5. Worklets and Filters
6. Build
7. Other