summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2021-07-27 11:59:15 +0100
committerGitHub <noreply@github.com>2021-07-27 11:59:15 +0100
commit92a882254b5a0d33ee1701073e2b1c1a9926ffd8 (patch)
treef297c8cfa3a85d2a17a8b1e168915ad3d96797aa
parentMerge tag 'v1.38.1' into release-v1.39 (diff)
downloadsynapse-92a882254b5a0d33ee1701073e2b1c1a9926ffd8.tar.xz
Change release script to update debian changelog for RCs (#10465)
-rw-r--r--changelog.d/10465.misc1
-rwxr-xr-xscripts-dev/release.py26
2 files changed, 21 insertions, 6 deletions
diff --git a/changelog.d/10465.misc b/changelog.d/10465.misc
new file mode 100644

index 0000000000..4de6201dfc --- /dev/null +++ b/changelog.d/10465.misc
@@ -0,0 +1 @@ +Fix release script to correctly version debian changelog when doing RCs. diff --git a/scripts-dev/release.py b/scripts-dev/release.py
index 5bfaa4ad2f..cff433af2a 100755 --- a/scripts-dev/release.py +++ b/scripts-dev/release.py
@@ -139,6 +139,11 @@ def run(): # Switch to the release branch. parsed_new_version = version.parse(new_version) + + # We assume for debian changelogs that we only do RCs or full releases. + assert not parsed_new_version.is_devrelease + assert not parsed_new_version.is_postrelease + release_branch_name = ( f"release-v{parsed_new_version.major}.{parsed_new_version.minor}" ) @@ -190,12 +195,21 @@ def run(): # Generate changelogs subprocess.run("python3 -m towncrier", shell=True) - # Generate debian changelogs if its not an RC. - if not rc: - subprocess.run( - f'dch -M -v {new_version} "New synapse release {new_version}."', shell=True - ) - subprocess.run('dch -M -r -D stable ""', shell=True) + # Generate debian changelogs + if parsed_new_version.pre is not None: + # If this is an RC then we need to coerce the version string to match + # Debian norms, e.g. 1.39.0rc2 gets converted to 1.39.0~rc2. + base_ver = parsed_new_version.base_version + pre_type, pre_num = parsed_new_version.pre + debian_version = f"{base_ver}~{pre_type}{pre_num}" + else: + debian_version = new_version + + subprocess.run( + f'dch -M -v {debian_version} "New synapse release {debian_version}."', + shell=True, + ) + subprocess.run('dch -M -r -D stable ""', shell=True) # Show the user the changes and ask if they want to edit the change log. repo.git.add("-u")