diff --git a/ansible_base/__init__.py b/ansible_base/__init__.py index 3bc99b1d4..63822573f 100644 --- a/ansible_base/__init__.py +++ b/ansible_base/__init__.py @@ -1,15 +1,18 @@ try: - from ._version import version -except ImportError: - version = 'Unknown' + from ._version import __version__, __version_tuple__ # noqa: F401 +except Exception: + import datetime + import subprocess + from typing import Tuple, Union -from typing import Tuple, Union + calver_now = datetime.datetime.now().strftime("%Y.%m.%d") + shaw = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip() -VERSION_TUPLE = Tuple[Union[int, str], ...] + VERSION_TUPLE = Tuple[Union[int, str], ...] -__version__: str -__version_tuple__: VERSION_TUPLE -version_tuple: VERSION_TUPLE + __version__: str + __version_tuple__: VERSION_TUPLE + version_tuple: VERSION_TUPLE -__version__ = version -__version_tuple__ = version_tuple = tuple(version.split('.')) + __version__ = f'{calver_now}-{shaw}' + __version_tuple__ = version_tuple = tuple(__version__.split('.')) diff --git a/ansible_base/_version.py b/ansible_base/_version.py deleted file mode 100644 index 9ecf7ca65..000000000 --- a/ansible_base/_version.py +++ /dev/null @@ -1,6 +0,0 @@ -import datetime -import subprocess - -calver_now = datetime.datetime.now().strftime("%Y.%m.%d") -shaw = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip() -version = f'{calver_now}-{shaw}' diff --git a/pyproject.toml b/pyproject.toml index aa425ffe0..f9d27e7f0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,9 +29,6 @@ classifiers = [ ] dynamic = ["version", "dependencies", "optional-dependencies"] -[tool.setuptools] -include-package-data = false - [tool.setuptools.packages.find] include = ["ansible_base*"] @@ -51,14 +48,15 @@ optional-dependencies.rest_filters = { file = [ "requirements/requirements_rest_ optional-dependencies.channel_auth = { file = [ "requirements/requirements_channels.in" ] } optional-dependencies.jwt_consumer = { file = [ "requirements/requirements_jwt_consumer.in" ] } optional-dependencies.testing = { file = [ "requirements/requirements_testing.in" ] } -version = {attr = "ansible_base.__version__"} [build-system] -requires = ["setuptools>=64"] +requires = ["setuptools>=64", "setuptools_scm>=8"] build-backend = 'setuptools.build_meta' [tool.setuptools_scm] version_scheme = "calver-by-date" +version_file = 'ansible_base/_version.py' +local_scheme = 'no-local-version' [tool.black] line-length = 160