Enforce sequential hotfix versioning
This commit is contained in:
@@ -1,6 +1,12 @@
|
|||||||
Hotfix Release Process
|
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.
|
In the commands below, <RELEASE> and <RELEASE_PREV> are prefixed with a v, ie.
|
||||||
v1.0.11 (not 1.0.11).
|
v1.0.11 (not 1.0.11).
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ def parse_args(args):
|
|||||||
# Top-level flow:
|
# Top-level flow:
|
||||||
def main_logged(release, releaseprev, releaseheight, hotfix):
|
def main_logged(release, releaseprev, releaseheight, hotfix):
|
||||||
verify_releaseprev_tag(releaseprev)
|
verify_releaseprev_tag(releaseprev)
|
||||||
|
verify_version(release, releaseprev, hotfix)
|
||||||
initialize_git(release, hotfix)
|
initialize_git(release, hotfix)
|
||||||
patch_version_in_files(release, releaseprev)
|
patch_version_in_files(release, releaseprev)
|
||||||
patch_release_height(releaseheight)
|
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.')
|
@phase('Initializing git.')
|
||||||
def initialize_git(release, hotfix):
|
def initialize_git(release, hotfix):
|
||||||
junk = sh_out('git', 'status', '--porcelain')
|
junk = sh_out('git', 'status', '--porcelain')
|
||||||
|
|||||||
Reference in New Issue
Block a user