diff --git a/codebasin/__init__.py b/codebasin/__init__.py index 16d6ee5..9889466 100644 --- a/codebasin/__init__.py +++ b/codebasin/__init__.py @@ -1,5 +1,6 @@ # Copyright (C) 2019-2024 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause +import importlib.metadata import os import shlex import warnings @@ -19,6 +20,8 @@ DeprecationWarning, ) +__version__ = importlib.metadata.version("codebasin") + class CompileCommand: """ diff --git a/codebasin/__main__.py b/codebasin/__main__.py index d881412..1d7849f 100755 --- a/codebasin/__main__.py +++ b/codebasin/__main__.py @@ -10,11 +10,10 @@ import os import sys -from codebasin import CodeBase, config, finder, report, util +from codebasin import CodeBase, __version__, config, finder, report, util from codebasin._detail.logging import Formatter, WarningAggregator log = logging.getLogger("codebasin") -version = "1.2.0" _traceback = False @@ -59,7 +58,7 @@ def _help_string(*lines: str, is_long=False, is_last=False): def _main(): # Read command-line arguments parser = argparse.ArgumentParser( - description="Code Base Investigator " + str(version), + description="Code Base Investigator " + str(__version__), formatter_class=argparse.RawTextHelpFormatter, add_help=False, ) @@ -72,7 +71,7 @@ def _main(): parser.add_argument( "--version", action="version", - version=f"Code Base Investigator {version}", + version=f"Code Base Investigator {__version__}", help=_help_string("Display version information and exit."), ) parser.add_argument( @@ -180,7 +179,9 @@ def _main(): log.addHandler(file_handler) if args.debug: - log.debug(f"Code Base Investigator {version}; Python {sys.version}") + log.debug( + f"Code Base Investigator {__version__}; Python {sys.version}", + ) # Inform the user that a log file has been created. # 'print' instead of 'log' to ensure the message is visible in the output. diff --git a/codebasin/coverage/__main__.py b/codebasin/coverage/__main__.py index 8c221c7..e13a004 100755 --- a/codebasin/coverage/__main__.py +++ b/codebasin/coverage/__main__.py @@ -9,15 +9,10 @@ import os import sys -from codebasin import CodeBase, config, finder, util +from codebasin import CodeBase, __version__, config, finder, util # TODO: Refactor to avoid imports from __main__ -from codebasin.__main__ import ( - Formatter, - WarningAggregator, - _help_string, - version, -) +from codebasin.__main__ import Formatter, WarningAggregator, _help_string from codebasin.preprocessor import CodeNode log = logging.getLogger("codebasin") @@ -28,7 +23,7 @@ def _build_parser() -> argparse.ArgumentParser: Build argument parser. """ parser = argparse.ArgumentParser( - description="CBI Coverage Tool " + version, + description="CBI Coverage Tool " + __version__, formatter_class=argparse.RawTextHelpFormatter, add_help=False, ) @@ -42,7 +37,7 @@ def _build_parser() -> argparse.ArgumentParser: parser.add_argument( "--version", action="version", - version=f"CBI Coverage Tool {version}", + version=f"CBI Coverage Tool {__version__}", help="Display version information and exit.", ) diff --git a/codebasin/tree.py b/codebasin/tree.py index c6a2408..72af266 100755 --- a/codebasin/tree.py +++ b/codebasin/tree.py @@ -7,10 +7,10 @@ import os import sys -from codebasin import CodeBase, config, finder, report, util +from codebasin import CodeBase, __version__, config, finder, report, util # TODO: Refactor to avoid imports from __main__ -from codebasin.__main__ import Formatter, _help_string, version +from codebasin.__main__ import Formatter, _help_string log = logging.getLogger("codebasin") @@ -20,7 +20,7 @@ def _build_parser() -> argparse.ArgumentParser: Build argument parser. """ parser = argparse.ArgumentParser( - description="CBI Tree Tool " + version, + description="CBI Tree Tool " + __version__, formatter_class=argparse.RawTextHelpFormatter, add_help=False, ) @@ -33,7 +33,7 @@ def _build_parser() -> argparse.ArgumentParser: parser.add_argument( "--version", action="version", - version=f"CBI Coverage Tool {version}", + version=f"CBI Tree Tool {__version__}", help=_help_string("Display version information and exit."), ) parser.add_argument( diff --git a/pyproject.toml b/pyproject.toml index 59b8bc7..f71307f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,15 +2,14 @@ # SPDX-License-Identifier: BSD-3-Clause [build-system] build-backend = "setuptools.build_meta" -requires = ["setuptools >= 61.0"] +requires = ["setuptools>=64", "setuptools-scm>=8"] [project] authors = [ {"name" = "S. John Pennycook", "email" = "john.pennycook@intel.com"}, ] description = "Code Base Investigator" -version = "1.2.0" -dynamic = ["readme"] +dynamic = ["version", "readme"] keywords = ["performance", "portability", "productivity"] name = "codebasin" requires-python = ">=3.9" @@ -61,6 +60,9 @@ include = ["codebasin*"] [tool.setuptools.dynamic] readme = {file = ["README.md"]} +[tool.setuptools_scm] +# Deliberately empty to enable setuptools-scm + [tool.coverage.run] command_line = "-m unittest" source = ["codebasin"]