Enforce sequential hotfix versioning

This commit is contained in:
Jack Grigg 2017-08-31 02:05:07 +01:00
parent df3005f955
commit 24bfc7c6c6
No known key found for this signature in database
GPG Key ID: 665DBCD284F7DAFF
2 changed files with 27 additions and 0 deletions

View File

@ -1,6 +1,12 @@
Hotfix Release Process
======================
Hotfix releases are versioned by incrementing the build number of the latest
release. For example:
First hotfix: v1.0.11 -> v1.0.11-1
Second hotfix: v1.0.11-1 -> v1.0.11-2
In the commands below, <RELEASE> and <RELEASE_PREV> are prefixed with a v, ie.
v1.0.11 (not 1.0.11).

View File

@ -72,6 +72,7 @@ def parse_args(args):
# Top-level flow:
def main_logged(release, releaseprev, releaseheight, hotfix):
verify_releaseprev_tag(releaseprev)
verify_version(release, releaseprev, hotfix)
initialize_git(release, hotfix)
patch_version_in_files(release, releaseprev)
patch_release_height(releaseheight)
@ -130,6 +131,26 @@ def verify_releaseprev_tag(releaseprev):
)
@phase('Checking version.')
def verify_version(release, releaseprev, hotfix):
if not hotfix:
return
expected = Version(
releaseprev.major,
releaseprev.minor,
releaseprev.patch,
releaseprev.betarc,
releaseprev.hotfix + 1 if releaseprev.hotfix else 1,
)
if release != expected:
raise SystemExit(
"Expected {!r}, given {!r}".format(
expected, release,
),
)
@phase('Initializing git.')
def initialize_git(release, hotfix):
junk = sh_out('git', 'status', '--porcelain')