Files
OpenShell/python/release_tooling_test.py
T
Kris Hicks 9bbb670280 fix(release): make dev packages post-stable
Dev releases now use post-stable package versions in tasks/scripts/release.py:99:

  Python: 0.0.37.post108+g152d05940
  Cargo:  0.0.37+post.108.g152d05940
  Debian: 0.0.37+post.108.g152d05940-1
  RPM:    Version 0.0.37, Release 2.dev.108.g152d05940

That makes dev sort after the latest stable 0.0.37-1, while still sorting below
the next stable 0.0.38-1.

This allows us to do an upgrade installation from a stable release to a dev
release, but then still be able to upgrade that dev release to the next stable
release.

Signed-off-by: Kris Hicks <khicks@nvidia.com>
2026-06-23 12:37:18 -07:00

52 lines
1.8 KiB
Python

# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
from __future__ import annotations
import importlib.util
import sys
from pathlib import Path
def _load_release_module():
path = Path(__file__).resolve().parents[1] / "tasks/scripts/release.py"
spec = importlib.util.spec_from_file_location("openshell_release_tooling", path)
assert spec is not None
assert spec.loader is not None
module = importlib.util.module_from_spec(spec)
sys.modules[spec.name] = module
spec.loader.exec_module(module)
return module
release = _load_release_module()
def test_exact_tag_versions_are_stable_release_versions() -> None:
versions = release._versions_from_parts((0, 0, 37), 0, "152d05940", "v0.0.37")
assert versions.python == "0.0.37"
assert versions.cargo == "0.0.37"
assert versions.docker == "0.0.37"
assert versions.deb == "0.0.37-1"
assert versions.rpm_version == "0.0.37"
assert versions.rpm_release == "1"
def test_dev_versions_share_one_build_identity() -> None:
versions = release._versions_from_parts((0, 0, 37), 108, "152d05940", "v0.0.37")
assert versions.python == "0.0.37.post108+g152d05940"
assert versions.cargo == "0.0.37+post.108.g152d05940"
assert versions.docker == "0.0.37-post.108.g152d05940"
assert versions.deb == "0.0.37+post.108.g152d05940-1"
assert versions.rpm_version == "0.0.37"
assert versions.rpm_release == "2.dev.108.g152d05940"
def test_semver_tag_parser_excludes_vm_tags() -> None:
assert release._parse_semver_tag("v0.0.37") == (0, 0, 37)
assert release._parse_semver_tag("0.0.37") == (0, 0, 37)
assert release._parse_semver_tag("vm-runtime") is None
assert release._parse_semver_tag("vm-dev") is None