diff options
author | Aldo Cortesi <aldo@corte.si> | 2018-06-16 09:41:15 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@corte.si> | 2018-06-16 09:48:21 +1200 |
commit | bf791ba1d5fc7b06178e077c9e4b6583296eed07 (patch) | |
tree | 56578fe2bb69a3c46ea2085c52fcb34444397ea6 /release | |
parent | ff8a9f5440bf9c75a8c8213faec0bd3ce7cd83f4 (diff) | |
download | mitmproxy-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-x | release/cibuild.py | 30 |
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 |