diff --git a/.gitignore b/.gitignore index e9ca893..f943278 100644 --- a/.gitignore +++ b/.gitignore @@ -133,3 +133,6 @@ dmypy.json # MacOS .DS_Store + +# setuptools-scm +_version.py diff --git a/olaf/__init__.py b/olaf/__init__.py index a596514..1c6497f 100644 --- a/olaf/__init__.py +++ b/olaf/__init__.py @@ -27,7 +27,10 @@ from .common.service import Service, ServiceState from .common.timer_loop import TimerLoop -__version__ = "3.3.1" +try: + from ._version import version as __version__ +except ImportError: + __version__ = "unknown" # package is not installed olaf_parser = ArgumentParser(prog="OLAF", add_help=False) olaf_parser.add_argument("-b", "--bus", default="vcan0", help="CAN bus to use, defaults to vcan0") diff --git a/pyproject.toml b/pyproject.toml index a0610a8..266f74e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools"] +requires = ["setuptools", "setuptools_scm"] build-backend = "setuptools.build_meta" [project] @@ -28,15 +28,15 @@ dependencies = [ ] dynamic = ["version"] -[tool.setuptools.dynamic] -version = {attr = "olaf.__version__"} - [tool.setuptools.packages.find] exclude = ["docs*", "tests*"] [tool.setuptools.package-data] "*" = ["*.html", "*.ico"] +[tool.setuptools_scm] +write_to = "olaf/_version.py" + [tool.black] line_length = 100 @@ -76,6 +76,11 @@ path = "tests/*" # W0212: Access to a protected member of a class ignore = "W0212" +[[tool.pylama.files]] +path = "*/_version.py" +# C0114: Missing module docstring +ignore = "C0114" + [[tool.mypy.overrides]] module = "canopen,oresat_configs,psutil" ignore_missing_imports = true diff --git a/requirements.txt b/requirements.txt index a35227c..eb68037 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,6 +10,7 @@ psutil pylama[all] pylama[toml] setuptools +setuptools-scm sphinx sphinx-rtd-theme sphinxcontrib-mermaid