diff --git a/script/version_bump.py b/script/version_bump.py index 25a3e26138d25935365bf1e73e57edddc3f4441e..d5df8e66902f0ddc0e79bcf9f7a227c9aea9e36b 100755 --- a/script/version_bump.py +++ b/script/version_bump.py @@ -3,6 +3,7 @@ import argparse import re import subprocess +from datetime import datetime from packaging.version import Version @@ -80,6 +81,16 @@ def bump_version(version, bump_type): to_change["release"] = _bump_release(version.release, "patch") to_change["pre"] = ("b", 0) + elif bump_type == "nightly": + # Convert 0.70.0d0 to 0.70.0d20190424, fails when run on non dev release + if not version.is_devrelease: + raise ValueError("Can only be run on dev release") + + to_change["dev"] = ( + "dev", + datetime.utcnow().date().isoformat().replace("-", ""), + ) + else: assert False, f"Unsupported type: {bump_type}" @@ -109,7 +120,7 @@ def main(): parser.add_argument( "type", help="The type of the bump the version to.", - choices=["beta", "dev", "patch", "minor"], + choices=["beta", "dev", "patch", "minor", "nightly"], ) parser.add_argument( "--commit", action="store_true", help="Create a version bump commit." @@ -128,6 +139,8 @@ def main(): def test_bump_version(): """Make sure it all works.""" + import pytest + assert bump_version(Version("0.56.0"), "beta") == Version("0.56.1b0") assert bump_version(Version("0.56.0b3"), "beta") == Version("0.56.0b4") assert bump_version(Version("0.56.0.dev0"), "beta") == Version("0.56.0b0") @@ -147,6 +160,13 @@ def test_bump_version(): assert bump_version(Version("0.56.0.dev0"), "minor") == Version("0.56.0") assert bump_version(Version("0.56.2.dev0"), "minor") == Version("0.57.0") + today = datetime.utcnow().date().isoformat().replace("-", "") + assert bump_version(Version("0.56.0.dev0"), "nightly") == Version( + f"0.56.0.dev{today}" + ) + with pytest.raises(ValueError): + assert bump_version(Version("0.56.0"), "nightly") + if __name__ == "__main__": main()