Skip to content

Commit 32029a6

Browse files
authored
Merge pull request #180 from Pennycook/feature/dynamic-version
Generate version string dynamically
2 parents 566a0a6 + 1895b0d commit 32029a6

File tree

5 files changed

+22
-21
lines changed

5 files changed

+22
-21
lines changed

codebasin/__init__.py

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Copyright (C) 2019-2024 Intel Corporation
22
# SPDX-License-Identifier: BSD-3-Clause
3+
import importlib.metadata
34
import os
45
import shlex
56
import warnings
@@ -19,6 +20,8 @@
1920
DeprecationWarning,
2021
)
2122

23+
__version__ = importlib.metadata.version("codebasin")
24+
2225

2326
class CompileCommand:
2427
"""

codebasin/__main__.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@
1010
import os
1111
import sys
1212

13-
from codebasin import CodeBase, config, finder, report, util
13+
from codebasin import CodeBase, __version__, config, finder, report, util
1414
from codebasin._detail.logging import Formatter, WarningAggregator
1515

1616
log = logging.getLogger("codebasin")
17-
version = "1.2.0"
1817

1918
_traceback = False
2019

@@ -59,7 +58,7 @@ def _help_string(*lines: str, is_long=False, is_last=False):
5958
def _main():
6059
# Read command-line arguments
6160
parser = argparse.ArgumentParser(
62-
description="Code Base Investigator " + str(version),
61+
description="Code Base Investigator " + str(__version__),
6362
formatter_class=argparse.RawTextHelpFormatter,
6463
add_help=False,
6564
)
@@ -72,7 +71,7 @@ def _main():
7271
parser.add_argument(
7372
"--version",
7473
action="version",
75-
version=f"Code Base Investigator {version}",
74+
version=f"Code Base Investigator {__version__}",
7675
help=_help_string("Display version information and exit."),
7776
)
7877
parser.add_argument(
@@ -180,7 +179,9 @@ def _main():
180179
log.addHandler(file_handler)
181180

182181
if args.debug:
183-
log.debug(f"Code Base Investigator {version}; Python {sys.version}")
182+
log.debug(
183+
f"Code Base Investigator {__version__}; Python {sys.version}",
184+
)
184185

185186
# Inform the user that a log file has been created.
186187
# 'print' instead of 'log' to ensure the message is visible in the output.

codebasin/coverage/__main__.py

+4-9
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,10 @@
99
import os
1010
import sys
1111

12-
from codebasin import CodeBase, config, finder, util
12+
from codebasin import CodeBase, __version__, config, finder, util
1313

1414
# TODO: Refactor to avoid imports from __main__
15-
from codebasin.__main__ import (
16-
Formatter,
17-
WarningAggregator,
18-
_help_string,
19-
version,
20-
)
15+
from codebasin.__main__ import Formatter, WarningAggregator, _help_string
2116
from codebasin.preprocessor import CodeNode
2217

2318
log = logging.getLogger("codebasin")
@@ -28,7 +23,7 @@ def _build_parser() -> argparse.ArgumentParser:
2823
Build argument parser.
2924
"""
3025
parser = argparse.ArgumentParser(
31-
description="CBI Coverage Tool " + version,
26+
description="CBI Coverage Tool " + __version__,
3227
formatter_class=argparse.RawTextHelpFormatter,
3328
add_help=False,
3429
)
@@ -42,7 +37,7 @@ def _build_parser() -> argparse.ArgumentParser:
4237
parser.add_argument(
4338
"--version",
4439
action="version",
45-
version=f"CBI Coverage Tool {version}",
40+
version=f"CBI Coverage Tool {__version__}",
4641
help="Display version information and exit.",
4742
)
4843

codebasin/tree.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import os
88
import sys
99

10-
from codebasin import CodeBase, config, finder, report, util
10+
from codebasin import CodeBase, __version__, config, finder, report, util
1111

1212
# TODO: Refactor to avoid imports from __main__
13-
from codebasin.__main__ import Formatter, _help_string, version
13+
from codebasin.__main__ import Formatter, _help_string
1414

1515
log = logging.getLogger("codebasin")
1616

@@ -20,7 +20,7 @@ def _build_parser() -> argparse.ArgumentParser:
2020
Build argument parser.
2121
"""
2222
parser = argparse.ArgumentParser(
23-
description="CBI Tree Tool " + version,
23+
description="CBI Tree Tool " + __version__,
2424
formatter_class=argparse.RawTextHelpFormatter,
2525
add_help=False,
2626
)
@@ -33,7 +33,7 @@ def _build_parser() -> argparse.ArgumentParser:
3333
parser.add_argument(
3434
"--version",
3535
action="version",
36-
version=f"CBI Coverage Tool {version}",
36+
version=f"CBI Tree Tool {__version__}",
3737
help=_help_string("Display version information and exit."),
3838
)
3939
parser.add_argument(

pyproject.toml

+5-3
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22
# SPDX-License-Identifier: BSD-3-Clause
33
[build-system]
44
build-backend = "setuptools.build_meta"
5-
requires = ["setuptools >= 61.0"]
5+
requires = ["setuptools>=64", "setuptools-scm>=8"]
66

77
[project]
88
authors = [
99
{"name" = "S. John Pennycook", "email" = "[email protected]"},
1010
]
1111
description = "Code Base Investigator"
12-
version = "1.2.0"
13-
dynamic = ["readme"]
12+
dynamic = ["version", "readme"]
1413
keywords = ["performance", "portability", "productivity"]
1514
name = "codebasin"
1615
requires-python = ">=3.9"
@@ -61,6 +60,9 @@ include = ["codebasin*"]
6160
[tool.setuptools.dynamic]
6261
readme = {file = ["README.md"]}
6362

63+
[tool.setuptools_scm]
64+
# Deliberately empty to enable setuptools-scm
65+
6466
[tool.coverage.run]
6567
command_line = "-m unittest"
6668
source = ["codebasin"]

0 commit comments

Comments
 (0)