Source code for spack.version.common
# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import spack.error
from spack.util.git import is_git_commit_sha
# Infinity-like versions. The order in the list implies the comparison rules
infinity_versions = ["stable", "nightly", "trunk", "head", "master", "main", "develop"]
iv_min_len = min(len(s) for s in infinity_versions)
ALPHA = 0
BETA = 1
RC = 2
FINAL = 3
PRERELEASE_TO_STRING = ["alpha", "beta", "rc"]
STRING_TO_PRERELEASE = {"alpha": ALPHA, "beta": BETA, "rc": RC, "final": FINAL}
[docs]
def is_git_version(string: str) -> bool:
return string.startswith("git.") or is_git_commit_sha(string) or "=" in string[1:]
[docs]
class VersionError(spack.error.SpackError):
"""This is raised when something is wrong with a version."""
[docs]
class VersionChecksumError(VersionError):
"""Raised for version checksum errors."""
[docs]
class VersionLookupError(VersionError):
"""Raised for errors looking up git commits as versions."""
[docs]
class EmptyRangeError(VersionError):
"""Raised when constructing an empty version range."""