aboutsummaryrefslogtreecommitdiffstats
path: root/release
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2018-06-16 09:41:15 +1200
committerAldo Cortesi <aldo@corte.si>2018-06-16 09:48:21 +1200
commitbf791ba1d5fc7b06178e077c9e4b6583296eed07 (patch)
tree56578fe2bb69a3c46ea2085c52fcb34444397ea6 /release
parentff8a9f5440bf9c75a8c8213faec0bd3ce7cd83f4 (diff)
downloadmitmproxy-bf791ba1d5fc7b06178e077c9e4b6583296eed07.tar.gz
mitmproxy-bf791ba1d5fc7b06178e077c9e4b6583296eed07.tar.bz2
mitmproxy-bf791ba1d5fc7b06178e077c9e4b6583296eed07.zip
cibuild: refactor to handle v prefix for release tag names
Diffstat (limited to 'release')
-rwxr-xr-xrelease/cibuild.py30
1 files changed, 15 insertions, 15 deletions
diff --git a/release/cibuild.py b/release/cibuild.py
index 2d11d69a..734eaf39 100755
--- a/release/cibuild.py
+++ b/release/cibuild.py
@@ -184,25 +184,17 @@ class BuildEnviron:
"""
with open(pathlib.Path(self.root_dir) / "mitmproxy" / "version.py") as f:
contents = f.read()
-
version = re.search(r'^VERSION = "(.+?)"', contents, re.M).group(1)
- if self.tag:
- # For (tagged) releases, we are strict:
- # 1. The tagname must match the version in mitmproxy/version.py
- # 2. The version info must be in canonical form (as recommended in PEP 440).
-
- if version != self.tag:
+ if self.is_prod_release:
+ # For production releases, we require strict version equality
+ if self.version != version:
raise ValueError(f"Tag is {self.tag}, but mitmproxy/version.py is {version}.")
- try:
- parver.Version.parse(version, strict=True)
- except parver.ParseError as e:
- raise ValueError(str(e)) from e
else:
# For snapshots, we only ensure that mitmproxy/version.py contains a dev release.
version_info = parver.Version.parse(version)
if not version_info.is_devrelease:
- raise ValueError("Releases must be tagged.")
+ raise ValueError(f"Non-production releases must have dev suffix: {version}")
@property
def has_docker_creds(self) -> bool:
@@ -265,10 +257,18 @@ class BuildEnviron:
@property
def version(self):
- name = self.tag or self.branch
- if not name:
+ if self.tag:
+ if self.tag.startswith("v"):
+ try:
+ parver.Version.parse(self.tag[1:], strict=True)
+ except parver.ParseError as e:
+ return self.tag
+ return self.tag[1:]
+ return self.tag
+ elif self.branch:
+ return self.branch
+ else:
raise BuildError("We're on neither a tag nor a branch - could not establish version")
- return name
def build_wheel(be: BuildEnviron): # pragma: no cover