mirror of
https://github.com/Electric-Special/ha-core.git
synced 2026-03-21 05:06:13 +01:00
Add support for packaging version >= 26 on the version bump script (#160858)
This commit is contained in:
@@ -2,15 +2,19 @@
|
||||
"""Helper script to bump the current version."""
|
||||
|
||||
import argparse
|
||||
from copy import replace
|
||||
from pathlib import Path
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
import packaging
|
||||
from packaging.version import Version
|
||||
|
||||
from homeassistant import const
|
||||
from homeassistant.util import dt as dt_util
|
||||
|
||||
_PACKAGING_VERSION_BELOW_26 = Version(packaging.__version__) < Version("26.0dev0")
|
||||
|
||||
|
||||
def _bump_release(release, bump_type):
|
||||
"""Bump a release tuple consisting of 3 numbers."""
|
||||
@@ -25,6 +29,13 @@ def _bump_release(release, bump_type):
|
||||
return major, minor, patch
|
||||
|
||||
|
||||
def _get_dev_change(dev: int) -> int | tuple[str, int]:
|
||||
"""Return the dev change based on packaging version."""
|
||||
if _PACKAGING_VERSION_BELOW_26:
|
||||
return ("dev", dev)
|
||||
return dev
|
||||
|
||||
|
||||
def bump_version(
|
||||
version: Version, bump_type: str, *, nightly_version: str | None = None
|
||||
) -> Version:
|
||||
@@ -58,9 +69,10 @@ def bump_version(
|
||||
# Convert 0.67.3.b5 to 0.67.4.dev0
|
||||
# Convert 0.67.3.dev0 to 0.67.3.dev1
|
||||
if version.is_devrelease:
|
||||
to_change["dev"] = ("dev", version.dev + 1)
|
||||
to_change["dev"] = _get_dev_change(version.dev + 1)
|
||||
else:
|
||||
to_change["pre"] = ("dev", 0)
|
||||
to_change["dev"] = _get_dev_change(0)
|
||||
to_change["pre"] = None
|
||||
to_change["release"] = _bump_release(version.release, "minor")
|
||||
|
||||
elif bump_type == "beta":
|
||||
@@ -99,14 +111,19 @@ def bump_version(
|
||||
raise ValueError("Nightly version must be a dev version")
|
||||
new_dev = new_version.dev
|
||||
|
||||
to_change["dev"] = ("dev", new_dev)
|
||||
if not isinstance(new_dev, int):
|
||||
new_dev = int(new_dev)
|
||||
to_change["dev"] = _get_dev_change(new_dev)
|
||||
|
||||
else:
|
||||
raise ValueError(f"Unsupported type: {bump_type}")
|
||||
|
||||
temp = Version("0")
|
||||
temp._version = version._version._replace(**to_change) # noqa: SLF001
|
||||
return Version(str(temp))
|
||||
if _PACKAGING_VERSION_BELOW_26:
|
||||
temp = Version("0")
|
||||
temp._version = version._version._replace(**to_change) # noqa: SLF001
|
||||
return Version(str(temp))
|
||||
|
||||
return replace(version, **to_change)
|
||||
|
||||
|
||||
def write_version(version):
|
||||
|
||||
Reference in New Issue
Block a user