diff --git a/.gitignore b/.gitignore index 6c4816b..17f183c 100644 --- a/.gitignore +++ b/.gitignore @@ -81,4 +81,4 @@ docs/_static/ docs/_templates/ # Logs -*.log \ No newline at end of file +*.logsrc/deltaglider/_version.py diff --git a/pyproject.toml b/pyproject.toml index 7cbe64b..44d19db 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,10 @@ +[build-system] +requires = ["setuptools>=61.0", "setuptools-scm>=8.0"] +build-backend = "setuptools.build_meta" + [project] name = "deltaglider" -version = "0.1.0" +dynamic = ["version"] description = "Store 4TB in 5GB: S3-compatible storage with 99.9% compression for versioned files" authors = [ {name = "Beshu Tech", email = "info@beshu.tech"}, @@ -74,12 +78,6 @@ dev = [ [project.scripts] deltaglider = "deltaglider.app.cli.main:main" -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - -[tool.hatch.build.targets.wheel] -packages = ["src/deltaglider"] [tool.hatch.build.targets.sdist] include = [ @@ -111,8 +109,15 @@ dev-dependencies = [ "mypy>=1.13.0", "boto3-stubs[s3]>=1.35.0", "types-python-dateutil>=2.9.0", + "setuptools-scm>=8.0.0", ] +[tool.setuptools_scm] +# Automatically determine version from git tags +write_to = "src/deltaglider/_version.py" +version_scheme = "post-release" +local_scheme = "no-local-version" + [tool.ruff] target-version = "py311" line-length = 100 diff --git a/src/deltaglider/__init__.py b/src/deltaglider/__init__.py index 8286467..dc65508 100644 --- a/src/deltaglider/__init__.py +++ b/src/deltaglider/__init__.py @@ -1,3 +1,7 @@ """DeltaGlider - Delta-aware S3 file storage wrapper.""" -__version__ = "0.1.0" +try: + from ._version import version as __version__ +except ImportError: + # Package is not installed, so version is not available + __version__ = "0.0.0+unknown" diff --git a/src/deltaglider/_version.py b/src/deltaglider/_version.py new file mode 100644 index 0000000..34c868d --- /dev/null +++ b/src/deltaglider/_version.py @@ -0,0 +1,34 @@ +# file generated by setuptools-scm +# don't change, don't track in version control + +__all__ = [ + "__version__", + "__version_tuple__", + "version", + "version_tuple", + "__commit_id__", + "commit_id", +] + +TYPE_CHECKING = False +if TYPE_CHECKING: + from typing import Tuple + from typing import Union + + VERSION_TUPLE = Tuple[Union[int, str], ...] + COMMIT_ID = Union[str, None] +else: + VERSION_TUPLE = object + COMMIT_ID = object + +version: str +__version__: str +__version_tuple__: VERSION_TUPLE +version_tuple: VERSION_TUPLE +commit_id: COMMIT_ID +__commit_id__: COMMIT_ID + +__version__ = version = '0.1.1.post0' +__version_tuple__ = version_tuple = (0, 1, 1, 'post0') + +__commit_id__ = commit_id = 'g02bce8053'