mirror of
https://github.com/microsoft/mscclpp.git
synced 2026-05-13 09:46:00 +00:00
Address corner case when generating version file (#641)
Address corner case for version file generation --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
@@ -5,59 +5,22 @@
|
||||
|
||||
import os
|
||||
import warnings
|
||||
import re
|
||||
from functools import wraps
|
||||
|
||||
|
||||
# Get version
|
||||
def _get_version():
|
||||
"""Get version from the best available source"""
|
||||
if os.environ.get("MSCCLPP_HOME", None) is None:
|
||||
os.environ["MSCCLPP_HOME"] = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
# Try setuptools-scm generated _version.py (most reliable)
|
||||
try:
|
||||
from ._version import __version__
|
||||
from ._version import __version__, __commit_id__
|
||||
|
||||
return __version__
|
||||
except ImportError:
|
||||
raise RuntimeError("Could not determine MSCCL++ version from setuptools-scm generated _version.py.")
|
||||
|
||||
|
||||
# Parse version components
|
||||
def _parse_version(version_string):
|
||||
"""Parse version components from setuptools-scm generated version"""
|
||||
# Pattern for versions like "0.7.0.dev36+g6e2360d69" (without .dYYYYMMDD)
|
||||
pattern = r"^v?(?P<base>[\d\.]+)(?:\.dev(?P<distance>\d+))?(?:\+g(?P<commit>[a-f0-9]+))?(?P<dirty>\.dirty)?$"
|
||||
match = re.match(pattern, version_string)
|
||||
|
||||
if match:
|
||||
return {"base_version": match.group("base"), "git_commit": match.group("commit") or "unknown"}
|
||||
else:
|
||||
# Fallback parsing - try to extract what we can
|
||||
base = version_string.split("+")[0].lstrip("v").split(".dev")[0]
|
||||
commit = "unknown"
|
||||
|
||||
return {"base_version": base, "git_commit": commit}
|
||||
|
||||
|
||||
__version__ = _get_version()
|
||||
|
||||
# Parse the version
|
||||
_version_info = _parse_version(__version__)
|
||||
__base_version__ = _version_info["base_version"]
|
||||
__git_commit__ = _version_info["git_commit"]
|
||||
version = {
|
||||
"version": __version__,
|
||||
"git_commit": __commit_id__,
|
||||
}
|
||||
|
||||
|
||||
def _version():
|
||||
"""Get complete version information as a dictionary"""
|
||||
return {
|
||||
"version": __version__,
|
||||
"base_version": __base_version__,
|
||||
"git_commit": __git_commit__,
|
||||
}
|
||||
|
||||
|
||||
version: dict = _version()
|
||||
|
||||
from ._mscclpp import (
|
||||
Env,
|
||||
ErrorCode,
|
||||
@@ -132,9 +95,6 @@ __all__ = [
|
||||
"SmDevice2DeviceSemaphore",
|
||||
]
|
||||
|
||||
if os.environ.get("MSCCLPP_HOME", None) is None:
|
||||
os.environ["MSCCLPP_HOME"] = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
|
||||
def get_include() -> str:
|
||||
"""Return the directory that contains the MSCCL++ headers."""
|
||||
|
||||
Reference in New Issue
Block a user