[PATCH] Release process improvements

Tom de Vries tdevries@suse.de
Mon Mar 8 13:13:08 GMT 2021


Hi,

While doing the 0.14 release I ran into a few minor issues when running the
scripts in contrib/release:
- The script contrib/release/upload-release.sh requires a version argument,
  but the version can just be read from the VERSION file.
- The contrib/release/do-release.sh does not do the git push.  I used
  my usual push script which also does a git rebase --ignore-date, which meant
  the commit got updated and the tag no longer referred to the commit.

Also, I realized it could be useful to have a release checklist to go through.

So:
- Use $(cat VERSION) in contrib/release/upload-release.sh to get version
- Add git push commands to contrib/release/do-release.sh
- Add README.release-checklist

Any comments?

Thanks,
- Tom

Release process improvements

2021-03-08  Tom de Vries  <tdevries@suse.de>

	* README.release-checklist: New file.
	* contrib/release/do-release.sh: Add git push commands.
	* contrib/release/upload-release.sh: Use $(cat VERSION) to get version.

---
 README.release-checklist          | 28 ++++++++++++++++++++++++++++
 contrib/release/do-release.sh     |  6 ++++++
 contrib/release/upload-release.sh |  2 +-
 3 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/README.release-checklist b/README.release-checklist
new file mode 100644
index 0000000..a936919
--- /dev/null
+++ b/README.release-checklist
@@ -0,0 +1,28 @@
+- Verify that copyright notices in source files are up-to-date.
+- Update COPYRIGHT_YEARS using contrib/release/gen-copyright-years.sh.
+  Commit modifications if there are any.
+- Run contrib/release/do-release.sh.
+  Use:
+  - --minor to do a minor update: $maj.$min -> $maj.$(($min + 1))
+  - --major to do a major update: $maj.$min -> $(($maj + 1)).0
+  This:
+  - adds a commit that updates the VERSION file,
+  - tags that commit, and
+  - pushes both the commit and the tag to the remote repository.
+- Run contrib/release/upload-release.sh.
+  This creates and uploads two release tarballs.
+- Write draft release announcement.
+  F.i. using template of
+  https://sourceware.org/ml/gdb-announce/2019/msg00001.html.
+- Sent out draft release announcement to maintainers for review and
+  further contributions.
+- Sent out release announcement.  Sent to:
+  - Maintainers
+  - dwz@sourceware.org
+  - dwarf-discuss@lists.dwarfstd.org
+  - gcc@gcc.gnu.org
+  - gdb@sourceware.org
+  - lldb-dev@lists.llvm.org
+- Update web page ( https://sourceware.org/dwz/ ):
+  - Add news item with hlink to release annoucement.
+  - Add entry in release list.
diff --git a/contrib/release/do-release.sh b/contrib/release/do-release.sh
index f1bb4d9..0fde9a7 100755
--- a/contrib/release/do-release.sh
+++ b/contrib/release/do-release.sh
@@ -52,10 +52,16 @@ echo Bumped version: major: $major,  minor: $minor
 
 version=$major.$minor
 
+set +x
+
 echo $version > VERSION
 
 git add VERSION
 
 git commit -m "Bump version to $version"
 
+git push origin master:master
+
 git tag dwz-$version
+
+git push origin dwz-$version
diff --git a/contrib/release/upload-release.sh b/contrib/release/upload-release.sh
index e5f6d70..3c2abdd 100755
--- a/contrib/release/upload-release.sh
+++ b/contrib/release/upload-release.sh
@@ -4,7 +4,7 @@ set -e
 
 pwd=$(pwd -P)
 
-version="$1"
+version=$(cat VERSION)
 
 tag=dwz-$version
 rootdir=dwz


More information about the Dwz mailing list