CLI - Update version to include revision hash and date (#427)
Update version to include revision hash and date in "{last tag}+g{git hash}.d{date}" format, here're the examples: * exact tag: 0.6.0 * commit after tag: 0.6.0+gcbb1b34 * commit after tag with local changes: 0.6.0+gcbb1b34.d20221028
This commit is contained in:
Родитель
7a27732e97
Коммит
d7bb8303fb
|
@ -10,6 +10,7 @@ outputs/
|
||||||
|
|
||||||
# Git
|
# Git
|
||||||
**/.git
|
**/.git
|
||||||
|
!/.git
|
||||||
**/.gitmodules
|
**/.gitmodules
|
||||||
**/.dockerignore
|
**/.dockerignore
|
||||||
.github/
|
.github/
|
||||||
|
|
|
@ -130,6 +130,7 @@ ADD third_party third_party
|
||||||
RUN make -C third_party cuda
|
RUN make -C third_party cuda
|
||||||
|
|
||||||
ADD . .
|
ADD . .
|
||||||
RUN python3 -m pip install .[nvworker] && \
|
RUN python3 -m pip install --no-cache-dir .[nvworker] && \
|
||||||
make cppbuild && \
|
make cppbuild && \
|
||||||
make postinstall
|
make postinstall && \
|
||||||
|
rm -rf .git
|
||||||
|
|
|
@ -126,6 +126,8 @@ ADD third_party third_party
|
||||||
RUN make -C third_party rocm
|
RUN make -C third_party rocm
|
||||||
|
|
||||||
ADD . .
|
ADD . .
|
||||||
RUN python3 -m pip install .[amdworker] && \
|
RUN python3 -m pip install --upgrade setuptools && \
|
||||||
|
python3 -m pip install --no-cache-dir .[amdworker] && \
|
||||||
make cppbuild && \
|
make cppbuild && \
|
||||||
make postinstall
|
make postinstall && \
|
||||||
|
rm -rf .git
|
||||||
|
|
|
@ -141,6 +141,7 @@ ADD third_party third_party
|
||||||
RUN make ROCBLAS_BRANCH=release/rocm-rel-5.1 -C third_party rocm
|
RUN make ROCBLAS_BRANCH=release/rocm-rel-5.1 -C third_party rocm
|
||||||
|
|
||||||
ADD . .
|
ADD . .
|
||||||
RUN python3 -m pip install .[amdworker] && \
|
RUN python3 -m pip install --no-cache-dir .[amdworker] && \
|
||||||
make cppbuild && \
|
make cppbuild && \
|
||||||
make postinstall
|
make postinstall && \
|
||||||
|
rm -rf .git
|
||||||
|
|
17
setup.py
17
setup.py
|
@ -18,9 +18,9 @@ from setuptools import setup, find_packages, Command
|
||||||
import superbench
|
import superbench
|
||||||
|
|
||||||
try:
|
try:
|
||||||
pkg_resources.require(['pip>=18'])
|
pkg_resources.require(['pip>=18', 'setuptools>=45'])
|
||||||
except (pkg_resources.VersionConflict, pkg_resources.DistributionNotFound):
|
except (pkg_resources.VersionConflict, pkg_resources.DistributionNotFound):
|
||||||
print('Try upgrade pip to latest version, for example, python3 -m pip install --upgrade pip')
|
print('Try upgrade pip/setuptools to latest version, for example, python3 -m pip install --upgrade pip setuptools')
|
||||||
raise
|
raise
|
||||||
|
|
||||||
here = pathlib.Path(__file__).parent.resolve()
|
here = pathlib.Path(__file__).parent.resolve()
|
||||||
|
@ -48,7 +48,7 @@ class Formatter(Command):
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""Fromat the code using yapf."""
|
"""Fromat the code using yapf."""
|
||||||
errno = os.system('python3 -m yapf --in-place --recursive --exclude .git .')
|
errno = os.system('python3 -m yapf --in-place --recursive --exclude .git --exclude .eggs .')
|
||||||
sys.exit(0 if errno == 0 else 1)
|
sys.exit(0 if errno == 0 else 1)
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ class Linter(Command):
|
||||||
errno = os.system(
|
errno = os.system(
|
||||||
' && '.join(
|
' && '.join(
|
||||||
[
|
[
|
||||||
'python3 -m yapf --diff --recursive --exclude .git .',
|
'python3 -m yapf --diff --recursive --exclude .git --exclude .eggs .',
|
||||||
'python3 -m mypy .',
|
'python3 -m mypy .',
|
||||||
'python3 -m flake8',
|
'python3 -m flake8',
|
||||||
]
|
]
|
||||||
|
@ -139,10 +139,19 @@ setup(
|
||||||
keywords='benchmark, AI systems',
|
keywords='benchmark, AI systems',
|
||||||
packages=find_packages(exclude=['tests']),
|
packages=find_packages(exclude=['tests']),
|
||||||
python_requires='>=3.6, <4',
|
python_requires='>=3.6, <4',
|
||||||
|
use_scm_version={
|
||||||
|
'local_scheme': 'node-and-date',
|
||||||
|
'version_scheme': lambda _: superbench.__version__,
|
||||||
|
'fallback_version': f'{superbench.__version__}+unknown',
|
||||||
|
},
|
||||||
|
setup_requires=[
|
||||||
|
'setuptools_scm',
|
||||||
|
],
|
||||||
install_requires=[
|
install_requires=[
|
||||||
'ansible_base>=2.10.9;os_name=="posix"',
|
'ansible_base>=2.10.9;os_name=="posix"',
|
||||||
'ansible_runner>=2.0.0rc1',
|
'ansible_runner>=2.0.0rc1',
|
||||||
'colorlog>=6.7.0',
|
'colorlog>=6.7.0',
|
||||||
|
'importlib_metadata',
|
||||||
'jinja2>=2.10.1',
|
'jinja2>=2.10.1',
|
||||||
'joblib>=1.0.1',
|
'joblib>=1.0.1',
|
||||||
'jsonlines>=2.0.0',
|
'jsonlines>=2.0.0',
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
"""SuperBench CLI command handler."""
|
"""SuperBench CLI command handler."""
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from importlib_metadata import version, PackageNotFoundError
|
||||||
|
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
from omegaconf import OmegaConf
|
from omegaconf import OmegaConf
|
||||||
|
@ -170,12 +171,15 @@ def process_runner_arguments(
|
||||||
|
|
||||||
|
|
||||||
def version_command_handler():
|
def version_command_handler():
|
||||||
"""Print the current SuperBench tool version.
|
"""Print the current SuperBench tool version in "{last tag}+g{git hash}.d{date}" format.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
str: current SuperBench tool version.
|
str: current SuperBench tool version.
|
||||||
"""
|
"""
|
||||||
return superbench.__version__
|
try:
|
||||||
|
return version('superbench')
|
||||||
|
except PackageNotFoundError:
|
||||||
|
return superbench.__version__
|
||||||
|
|
||||||
|
|
||||||
def exec_command_handler(config_file=None, config_override=None, output_dir=None):
|
def exec_command_handler(config_file=None, config_override=None, output_dir=None):
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
import io
|
import io
|
||||||
import contextlib
|
import contextlib
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from knack.testsdk import ScenarioTest, StringCheck, NoneCheck, JMESPathCheck
|
from knack.testsdk import ScenarioTest, StringContainCheck, NoneCheck, JMESPathCheck
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import superbench
|
import superbench
|
||||||
|
@ -51,7 +51,7 @@ class SuperBenchCLIScenarioTest(ScenarioTest):
|
||||||
|
|
||||||
def test_sb_version(self):
|
def test_sb_version(self):
|
||||||
"""Test sb version."""
|
"""Test sb version."""
|
||||||
self.cmd('sb version', checks=[StringCheck(superbench.__version__)])
|
self.cmd('sb version', checks=[StringContainCheck(superbench.__version__)])
|
||||||
|
|
||||||
def test_sb_deploy(self):
|
def test_sb_deploy(self):
|
||||||
"""Test sb deploy."""
|
"""Test sb deploy."""
|
||||||
|
|
Загрузка…
Ссылка в новой задаче