From 50aca219182cfc9e1df665e49efdf6be137cd022 Mon Sep 17 00:00:00 2001 From: John Blischak Date: Thu, 9 Jan 2025 13:59:41 -0500 Subject: [PATCH] Make version dynamic --- .github/workflows/python-tiledbsoma-ml.yml | 12 ++++++++++++ pyproject.toml | 5 ++--- src/tiledbsoma_ml/__init__.py | 9 ++++++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-tiledbsoma-ml.yml b/.github/workflows/python-tiledbsoma-ml.yml index 206f7b4..f33a06e 100644 --- a/.github/workflows/python-tiledbsoma-ml.yml +++ b/.github/workflows/python-tiledbsoma-ml.yml @@ -66,6 +66,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 # for setuptools-scm - uses: actions/setup-python@v5 with: @@ -75,3 +77,13 @@ jobs: run: | pip install --upgrade build pip wheel setuptools setuptools-scm python -m build . + + - name: Install (and test version string) + run: | + git tag -l + git describe --dirty --tags --long --match *[0-9]* + python -m setuptools_scm + pip install --prefer-binary dist/tiledbsoma_ml-*.whl + pip list | grep tiledbsoma-ml + # Change directory to avoid importing local source package + cd .. && python -c "import tiledbsoma_ml as soma_ml; print(soma_ml.__version__)" diff --git a/pyproject.toml b/pyproject.toml index 6a60417..246af44 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools >= 61.0"] +requires = ["setuptools>=64", "setuptools-scm>=8"] build-backend = "setuptools.build_meta" [project] @@ -50,8 +50,7 @@ Repository = "https://github.com/TileDB-Inc/TileDB-SOMA-ML.git" Issues = "https://github.com/TileDB-Inc/TileDB-SOMA-ML/issues" Changelog = "https://github.com/TileDB-Inc/TileDB-SOMA-ML/blob/main/CHANGELOG.md" -[tool.setuptools.dynamic] -version = {attr = "tiledbsoma_ml.__version__"} +[tool.setuptools_scm] [tool.setuptools.package-data] "tiledbsoma_ml" = ["py.typed"] diff --git a/src/tiledbsoma_ml/__init__.py b/src/tiledbsoma_ml/__init__.py index 0cab2bb..5e1ba0a 100644 --- a/src/tiledbsoma_ml/__init__.py +++ b/src/tiledbsoma_ml/__init__.py @@ -5,11 +5,18 @@ """An API to support machine learning applications built on SOMA.""" +from importlib.metadata import PackageNotFoundError, version + from .dataloader import experiment_dataloader from .datapipe import ExperimentAxisQueryIterDataPipe from .dataset import ExperimentAxisQueryIterableDataset -__version__ = "0.1.0-dev" +try: + __version__ = version("tiledbsoma-ml") +except PackageNotFoundError: + # package is not installed + pass + __all__ = [ "ExperimentAxisQueryIterDataPipe",