Replace deprecated distutils.version with packaging.version

Fix https://github.com/galaxyproject/galaxy/issues/12654 .
This commit is contained in:
Nicola Soranzo
2022-06-13 18:47:23 +01:00
parent 6713818165
commit 9528dc634d
3 changed files with 23 additions and 25 deletions
+7 -6
View File
@@ -3,9 +3,10 @@
# This file is appended to conf.py by the Build docs github workflow.
#
import re
from distutils.version import LooseVersion
from subprocess import check_output
from packaging.version import Version
# This is set in the Jenkins matrix config
TARGET_GIT_BRANCH = os.environ.get("TARGET_BRANCH", "dev") # noqa: F821
@@ -17,7 +18,7 @@ BANNER_APPEND = """ You can alternatively <a href="%(stable_path)s">view this pa
exists</a> or <a href="%(stable_root)s">view the top of the latest release's documentation</a>."""
# Minimum version for linking to docs
MIN_DOC_VERSION = LooseVersion("17.05")
MIN_DOC_VERSION = Version("17.05")
# Enable simpleversioning
extensions += ["sphinxcontrib.simpleversioning"] # noqa: F821
@@ -43,16 +44,16 @@ for _tag in reversed(tags):
_ver = _tag[1:]
if not _stable:
_stable = _ver
if LooseVersion(_ver) >= MIN_DOC_VERSION:
simpleversioning_versions.append({"id": "release_%s" % _ver, "name": _ver})
if Version(_ver) >= MIN_DOC_VERSION:
simpleversioning_versions.append({"id": f"release_{_ver}", "name": _ver})
if re.fullmatch(r"release_\d{2}\.\d{2}", TARGET_GIT_BRANCH):
if _stable:
# The current stable release will go here but fail the next conditional, avoiding either banner.
if TARGET_GIT_BRANCH != "release_%s" % _stable:
if TARGET_GIT_BRANCH != f"release_{_stable}":
simpleversioning_show_banner = True
_target_ver = TARGET_GIT_BRANCH[len("release_") :]
if LooseVersion(_target_ver) > LooseVersion(_stable):
if Version(_target_ver) > Version(_stable):
# Pre-release
# Insert it between master and _stable
simpleversioning_versions.insert(2, {"id": TARGET_GIT_BRANCH, "name": _target_ver})
+12 -16
View File
@@ -4,7 +4,8 @@ import os
import re
import subprocess
import sys
from distutils.version import StrictVersion
from packaging.version import Version
DEV_RELEASE = os.environ.get("DEV_RELEASE", None) == "1"
PROJECT_DIRECTORY = os.getcwd()
@@ -14,19 +15,16 @@ PROJECT_NAME = PROJECT_DIRECTORY_NAME.replace("_", "-")
def main(argv):
version = argv[1]
version_obj = Version(version)
if not DEV_RELEASE:
old_version = StrictVersion(version)
old_version_tuple = old_version.version
new_version_tuple = list(old_version_tuple)
new_version_tuple[2] = old_version_tuple[2] + 1
# Discard epoch, release numbers after micro, pre-, post-, dev-release segments and local version
new_version_tuple = list(version_obj.release[:3])
new_version_tuple[2] += 1
new_version = ".".join(map(str, new_version_tuple))
new_dev_version = 0
else:
dev_match = re.compile(r"dev([\d]+)").search(version)
assert dev_match
dev_version = dev_match.group(1)
new_dev_version = int(dev_version) + 1
new_version = version.replace(f"dev{dev_version}", f"dev{new_dev_version}")
dev_number = version_obj.dev
assert dev_number is not None
new_version = f"{version_obj.base_version}.dev{dev_number + 1}"
history_path = os.path.join(PROJECT_DIRECTORY, "HISTORY.rst")
if not DEV_RELEASE:
@@ -53,13 +51,11 @@ def main(argv):
with open(setup_cfg_path) as f:
setup_cfg = f.read()
if not DEV_RELEASE:
setup_cfg = re.sub(
r"^version = [\d\.]+", f"version = {new_version}.dev0", setup_cfg, count=1, flags=re.MULTILINE
)
setup_cfg = re.sub(r"^version = .*$", f"version = {new_version}.dev0", setup_cfg, count=1, flags=re.MULTILINE)
else:
setup_cfg = re.sub(
rf"^version = ([\d\.]+).dev{dev_version}",
rf"version = \1.dev{new_dev_version}",
r"^version = .*$",
rf"version = {new_version}",
setup_cfg,
count=1,
flags=re.MULTILINE,
@@ -1,6 +1,7 @@
import os
import re
from distutils.version import LooseVersion
from packaging.version import Version
_version_re = re.compile(r"^version\s+=\s+(.*)", flags=re.MULTILINE)
@@ -18,9 +19,9 @@ def main():
version = version_match.group(1)
if not DEV_RELEASE:
version_obj = Version(version)
# Strip .devN
version_tuple = LooseVersion(version).version[0:3]
print(".".join(map(str, version_tuple)))
print(version_obj.base_version)
else:
print(version)