newrelease.md: templatize newrelease.md

- Uses pyexpander as engine since we already depend on it.
- Add rules for dealing with VTK releases.
- Updates docs/ReleaseProcess.md .
This commit is contained in:
Vicente Adolfo Bolea Sanchez 2022-09-28 18:02:37 -04:00
parent 7496dc1e9e
commit 165d6d936f
3 changed files with 100 additions and 79 deletions

3
.gitattributes vendored

@ -10,7 +10,8 @@ data/** filter=lfs diff=lfs merge=lfs -text
/**/data/** filter=lfs diff=lfs merge=lfs -text /**/data/** filter=lfs diff=lfs merge=lfs -text
*.cmake whitespace=tab-in-indent *.cmake whitespace=tab-in-indent
*.md whitespace=tab-in-indent conflict-marker-size=79 -whitespace *.md whitespace=tab-in-indent whitespace=-blank-at-eol conflict-marker-size=79 -whitespace
*.md.tmpl whitespace=tab-in-indent whitespace=-blank-at-eol conflict-marker-size=79 -whitespace
*.rst whitespace=tab-in-indent conflict-marker-size=79 *.rst whitespace=tab-in-indent conflict-marker-size=79
*.txt whitespace=tab-in-indent *.txt whitespace=tab-in-indent

@ -1,14 +1,17 @@
<!-- <!--
This template is for tracking a release of VTKm. Please replace the This template is for tracking a release of VTKm.
following strings with the associated values:
- `@VERSION@` - replace with base version, e.g., 1.6.0 Process this file with the pyexpander script specifying the desired `version`:
- `@RC@` - for release candidates, replace with "-rc?". For final, replace with "".
- `@MAJOR@` - replace with major version number expander.py --eval 'version="1.9.0-rc1"' docs/NewRelease.md.tmpl | xclip -selection c
- `@MINOR@` - replace with minor version number
Please remove this comment. Please remove this comment.
--> -->
$py(VERSION=str(version.partition("-")[0]))\
$py(MAJOR=int(VERSION.split(".")[0]))\
$py(MINOR=int(VERSION.split(".")[1]))\
$py(PATCH=int(VERSION.split(".")[2]))\
$py(RC="".join(version.partition("-")[1:3]))\
## Update VTK-m ## Update VTK-m
- [ ] Update `release` branch for **vtk-m** and create update branch - [ ] Update `release` branch for **vtk-m** and create update branch
@ -18,24 +21,30 @@ git checkout release
git merge --ff-only origin/release git merge --ff-only origin/release
git submodule update --recursive --init git submodule update --recursive --init
``` ```
$if(PATCH == 0 and RC == "-rc1")\
- [ ] Update `master` branch for **vtk-m** and create update branch
```
git fetch origin
git checkout master
git merge --ff-only origin/master
git submodule update --recursive --init
```
$endif\
## Create update branch ## Create update branch
- [ ] Create update branch `git checkout -b update-to-v@VERSION@` - [ ] Create update branch `git checkout -b update-to-$(VERSION)`
<!-- if @RC@ == "-rc1"--> $if(PATCH == 0 and RC == "-rc1")\
- [ ] Bring as a second parent the history of master (Solve conflicts always - [ ] Bring as a second parent the history of master (Solve conflicts always
taking master's version) taking master's version)
``` ```
git merge --no-ff origin/master git merge --no-ff origin/master
echo "$(MAJOR).$(MINOR).9999" > version.txt
git add version.txt
``` ```
<!-- endif --> $else\
- [ ] Backport merge-requests belonging to the milestone $(VERSION)
<!-- if not a patch release --> $endif\
- [ ] Update the major and minor version in `version.txt`:
```
echo "@MAJOR@.@MINOR@.9999" > version.txt
git add version.txt`
```
<!-- endif -->
- [ ] Update the version (not in patch releases) and date in the LICENSE.md - [ ] Update the version (not in patch releases) and date in the LICENSE.md
file `git add LICENSE.md`. file `git add LICENSE.md`.
@ -46,66 +55,78 @@ git commit -m 'release: update version and License'
<!-- Do we have new release notes? --> <!-- Do we have new release notes? -->
- [ ] Craft or update [changelog](#generate-change-log) - [ ] Craft or update [changelog](#generate-change-log)
`docs/changelog/@VERSION@/release-notes.md` file. `docs/changelog/$(VERSION)/release-notes.md` file.
- [ ] Create release notes commit. - [ ] Create release notes commit.
``` ```
git add docs/changelog/@VERSION@/release-notes.md git add docs/changelog/$(MAJOR).$(MINOR)/release-notes.md
git rm docs/changelog/*.md git rm docs/changelog/*.md
git commit -m 'release: @VERSION@@RC@ release notes' git commit -m 'release: $(VERSION)$(RC) release notes'
``` ```
<!-- endif --> <!-- endif -->
- [ ] Create update version commit: - [ ] Create update version commit:
``` ```
echo @VERSION@@RC@ > version.txt echo $(VERSION)$(RC) > version.txt
git add version.txt git add version.txt
# Create commit with the following template # Create commit with the following template
# Nth is counted by the number of final release tags # Nth is counted by the number of final release tags
git commit -m '@VERSION@@RC@ is our Nth official release of VTK-m. git commit -m '$(VERSION)$(RC) is our Nth official release of VTK-m.
The major changes to VTK-m from (previous release) can be found in: The major changes to VTK-m from (previous release) can be found in:
docs/changelog/@VERSION@/release-notes.md' version.txt docs/changelog/$(VERSION)/release-notes.md' version.txt
``` ```
- [ ] `git tag -a -m 'VTKm @VERSION@@RC@' v@VERSION@@RC@ HEAD` - [ ] `git tag -a -m 'VTKm $(VERSION)$(RC)' v$(VERSION)$(RC) HEAD`
- Integrate changes to `release` branch - Integrate changes to `release` branch
- [ ] Create a MR using the [release-mr script][1] - [ ] Create a MR using the [release-mr script][1]
(see [notes](#notes-about-update-mr)). (see [notes](#notes-about-update-mr)).
<!-- if not patch release --> $if(PATCH == 0 and RC == "-rc1")\
- [ ] Add (or ensure) at the bottom of the description of the merge request: - [ ] Add (or ensure) at the bottom of the description of the merge request:
`Backport: master:HEAD~1` `Backport: master:HEAD~1`
<!-- elseif patch release --> $else\
- [ ] Remove (or ensure) that at the bottom of the description of the merge - [ ] Remove (or ensure) that at the bottom of the description of the merge
request there is no `Backport` instruction. request there is no `Backport` instruction.
<!-- endif --> $endif\
- [ ] Get +1 - [ ] Get +1
- [ ] `Do: merge` - [ ] `Do: merge`
- Push tags - Push tags
- [ ] `git push origin v@VERSION@@RC@` - [ ] `git push origin v$(VERSION)$(RC)`
## Update Spack ## Update Spack
- [ ] Update Spack package: https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/vtk-m/package.py - [ ] Update Spack package: https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/vtk-m/package.py
## Post-release ## Post-release
- [ ] Copy the contents of docs/changelog/@VERSION@/release-notes.md to - [ ] Copy the contents of docs/changelog/$(VERSION)/release-notes.md to
the GitLab release. the GitLab release.
<!-- if not patch release --> $if(PATCH == 0 and RC == ""))\
- [ ] Tag new version of the [VTK-m User Guide][2]. - [ ] Tag new version of the [VTK-m User Guide][2].
<!-- endif --> $endif\
- [ ] Post an [Email Announcements](#email-announcements) VTK-m mailing list. - [ ] Post an [Email Announcements](#email-announcements) VTK-m mailing list.
<!-- if not patch release --> $if(PATCH == 0)\
- [ ] Ensure that the content of `version.txt` in master is - [ ] Ensure that the content of `version.txt` in master is `$(MAJOR).$(MINOR).9999`.
`[@MAJOR@ @MINOR@](@MAJOR@.@MINOR@.9999)`. $endif\
<!-- endif release -->
## Update VTK-m in VTK
VTK ships a particular VTK-m release in each of its releases, we need to open a
merge-request update the VTK-m commit in VTK as soon as possible even if the
newly VTK-m version does not correspond with the scheduled for the following VTK
release, the reason for opening the merge-request is that:
- We can test how compatible it is with VTK giving us the change to address
those issues in the following releases.
- We do not forget to update VTK-m commit in VTK when the time comes
- [ ] Update VTK-m submodule in VTK using: `git submodule update --remote`
--- ---
# Annex # Annex
## Generate change log ## Generate change log
Construct a `docs/changelog/@VERSION@/` folder. Construct a `docs/changelog/$(VERSION)/` folder.
Construct a `docs/changelog/@VERSION@/release-notes.md` file Construct a `docs/changelog/$(VERSION)/release-notes.md` file
Use the following template for `release-notes.md`: Use the following template for `release-notes.md`:
@ -186,8 +207,8 @@ release branch the patch and release-candidate version is observed whereas in
master the patch field is fixed to _9999_ indicating that each of its commit is master the patch field is fixed to _9999_ indicating that each of its commit is
a developing release. a developing release.
- Master: `@MAJOR@.@MINOR@.9999` - Master: `$(MAJOR).$(MINOR).9999`
- Release: `@MAJOR@.@MINOR@.@PATCH@@RC@` - Release: `$(MAJOR).$(MINOR).$(PATCH)$(RC)`
## Email Announcements ## Email Announcements
@ -215,18 +236,16 @@ contributed to VTK-m since our last release. The 1.5.0 release contains
over 100000 merge requests, and 100000 entries to the changelog . over 100000 merge requests, and 100000 entries to the changelog .
Below are all the entries in the changelog, with more details at ( Below are all the entries in the changelog, with more details at (
https://gitlab.kitware.com/vtk/vtk-m/-/tags/v@VERSION@) or in the vtkm https://gitlab.kitware.com/vtk/vtk-m/-/tags/v$(VERSION)) or in the vtkm
repository at `docs/@VERSION@/release-notes.md` repository at `docs/$(VERSION)/release-notes.md`
<!-- if is a patch release -->
$if(int(PATCH) > 0)\
- Update the link to register with the VTK-m dashboard - Update the link to register with the VTK-m dashboard
. .
. .
. .
- CMAKE: CUDA ampere generate sm_80/86 - CMAKE: CUDA ampere generate sm_80/86
$else\
<!-- else -->
1. Core 1. Core
- Core change 1 - Core change 1
2. ArrayHandle 2. ArrayHandle
@ -235,13 +254,11 @@ repository at `docs/@VERSION@/release-notes.md`
5. Worklets and Filters 5. Worklets and Filters
6. Build 6. Build
7. Other 7. Other
<!-- endif --> $endif\
``` ```
/cc @ben.boeckel @ben.boeckel
@vbolea
/cc @vbolea
/label ~"priority:required" /label ~"priority:required"
[1]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py [1]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py

@ -87,6 +87,9 @@ shown in here:
# Get started with a new Release # Get started with a new Release
1. Go to `https://gitlab.kitware.com/vtkm/vtk-m/` and open a new issue. 1. Go to `https://gitlab.kitware.com/vtkm/vtk-m/` and open a new issue.
2. At the _issue template_ dropdown menu select: `NewRelease.md` 2. Generate and copy to clipboard the release script (-rcN is optional):
3. Now remove the comments and substitute the variables surrounded by `@`. ```
4. Post the issue and follow the steps. # Download pyexpander (Available in pip)
expander.py --eval 'version="X.Y.Z-rcN"' docs/NewRelease.md.tmpl | xclip -selection c
```
3. Paste the output in the issue and follow the steps.