From 550d5aabe36c26fbf240a3cd2ac003d7899118ef Mon Sep 17 00:00:00 2001 From: ram-from-tvl Date: Mon, 22 Sep 2025 11:03:00 +0530 Subject: [PATCH 1/5] made the chnages --- src/main.py | 9 ++++++++- src/main_india.py | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main.py b/src/main.py index c4cec025..dac6d652 100644 --- a/src/main.py +++ b/src/main.py @@ -37,6 +37,13 @@ from adjuster import adjuster_page from batch_page import batch_page +from importlib.metadata import PackageNotFoundError, version + +try: + __version__ = version("analysis-dashboard") +except PackageNotFoundError: + __version__ = "v?" + st.get_option("theme.primaryColor") st.set_page_config(layout="wide", page_title="OCF Dashboard") @@ -252,7 +259,7 @@ def metric_page(): def main_page(): - st.text('This is the Analysis Dashboard UK. Please select the page you want from the menu at the top of this page') + st.text(f'This is the Analysis Dashboard UK v{__version__}. Please select the page you want from the menu at the top of this page') if check_password(): diff --git a/src/main_india.py b/src/main_india.py index 782247dd..fffa17e8 100644 --- a/src/main_india.py +++ b/src/main_india.py @@ -16,11 +16,18 @@ from weather_graph import weather_graph_page from batch_page import batch_page +from importlib.metadata import PackageNotFoundError, version + +try: + __version__ = version("analysis-dashboard") +except PackageNotFoundError: + __version__ = "v?" + st.get_option("theme.primaryColor") st.set_page_config(layout="wide", page_title="OCF Dashboard") def main_page(): - st.text('This is the Analysis Dashboard India. Please select the page you want on the left hand side') + st.text(f'This is the Analysis Dashboard India v{__version__}. Please select the page you want on the left hand side') if check_password(): From 6490244ad15670359ef0db34564bc26ab14a6050 Mon Sep 17 00:00:00 2001 From: ram-from-tvl Date: Mon, 22 Sep 2025 13:54:50 +0530 Subject: [PATCH 2/5] Fix version display to work with Docker by reading from pyproject.toml instead of importlib.metadata --- src/main.py | 8 +++++--- src/main_india.py | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main.py b/src/main.py index dac6d652..47b2e897 100644 --- a/src/main.py +++ b/src/main.py @@ -37,11 +37,13 @@ from adjuster import adjuster_page from batch_page import batch_page -from importlib.metadata import PackageNotFoundError, version +import tomllib try: - __version__ = version("analysis-dashboard") -except PackageNotFoundError: + with open("pyproject.toml", "rb") as f: + pyproject_data = tomllib.load(f) + __version__ = pyproject_data["project"]["version"] +except (FileNotFoundError, KeyError): __version__ = "v?" st.get_option("theme.primaryColor") diff --git a/src/main_india.py b/src/main_india.py index fffa17e8..108dfc9d 100644 --- a/src/main_india.py +++ b/src/main_india.py @@ -16,11 +16,13 @@ from weather_graph import weather_graph_page from batch_page import batch_page -from importlib.metadata import PackageNotFoundError, version +import tomllib try: - __version__ = version("analysis-dashboard") -except PackageNotFoundError: + with open("pyproject.toml", "rb") as f: + pyproject_data = tomllib.load(f) + __version__ = pyproject_data["project"]["version"] +except (FileNotFoundError, KeyError): __version__ = "v?" st.get_option("theme.primaryColor") From 056dcd96be48f6175713f4d0fe454f77902c6ae2 Mon Sep 17 00:00:00 2001 From: ram-from-tvl Date: Mon, 22 Sep 2025 14:30:43 +0530 Subject: [PATCH 3/5] Implement dynamic versioning using git tags --- .gitignore | 3 +++ Dockerfile | 2 ++ pyproject.toml | 8 +++++--- src/main.py | 8 +++----- src/main_india.py | 8 +++----- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index b9cff1ae..c6741ae2 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,9 @@ src/.streamlit/secrets.toml # uv .venv/ .python-version + +# setuptools +*.egg-info/ __pycache__/ *.py[cod] *$py.class diff --git a/Dockerfile b/Dockerfile index d72f92a1..d0b222ed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libpq-dev \ gcc \ curl \ + git \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Install uv @@ -18,6 +19,7 @@ WORKDIR /app # Copy pyproject.toml and README.md for dependency installation COPY pyproject.toml ./ COPY README.md ./ +COPY .git .git # Install dependencies using uv (generate lock file during build) RUN uv sync diff --git a/pyproject.toml b/pyproject.toml index 25ef3852..9e8f544e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,10 @@ [build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" +requires = ["setuptools>=61", "setuptools-scm"] +build-backend = "setuptools.build_meta" [project] name = "analysis-dashboard" -version = "0.1.0" +dynamic = ["version"] description = "Analysis dashboard for OCF forecasting systems" readme = {file = "README.md", content-type = "text/markdown"} requires-python = ">=3.12.0,<3.13" @@ -72,3 +72,5 @@ python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] pythonpath = ["src"] + +[tool.setuptools_scm] diff --git a/src/main.py b/src/main.py index 47b2e897..dac6d652 100644 --- a/src/main.py +++ b/src/main.py @@ -37,13 +37,11 @@ from adjuster import adjuster_page from batch_page import batch_page -import tomllib +from importlib.metadata import PackageNotFoundError, version try: - with open("pyproject.toml", "rb") as f: - pyproject_data = tomllib.load(f) - __version__ = pyproject_data["project"]["version"] -except (FileNotFoundError, KeyError): + __version__ = version("analysis-dashboard") +except PackageNotFoundError: __version__ = "v?" st.get_option("theme.primaryColor") diff --git a/src/main_india.py b/src/main_india.py index 108dfc9d..fffa17e8 100644 --- a/src/main_india.py +++ b/src/main_india.py @@ -16,13 +16,11 @@ from weather_graph import weather_graph_page from batch_page import batch_page -import tomllib +from importlib.metadata import PackageNotFoundError, version try: - with open("pyproject.toml", "rb") as f: - pyproject_data = tomllib.load(f) - __version__ = pyproject_data["project"]["version"] -except (FileNotFoundError, KeyError): + __version__ = version("analysis-dashboard") +except PackageNotFoundError: __version__ = "v?" st.get_option("theme.primaryColor") From 4907a7ac01edac3125f7bc810c7959f5bf083b6d Mon Sep 17 00:00:00 2001 From: ram-from-tvl Date: Thu, 23 Oct 2025 19:50:29 +0530 Subject: [PATCH 4/5] Add cleaner version display --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 9e8f544e..f840523e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools>=61", "setuptools-scm"] +requires = ["setuptools>=61", "setuptools-scm>=8.0"] build-backend = "setuptools.build_meta" [project] @@ -74,3 +74,4 @@ python_functions = ["test_*"] pythonpath = ["src"] [tool.setuptools_scm] +local_scheme = "no-local-version" From af046a3a52ed37817cef1bf4498f2579931e12ac Mon Sep 17 00:00:00 2001 From: Peter Dudfield Date: Tue, 9 Dec 2025 09:18:18 +0000 Subject: [PATCH 5/5] use setuptools-git-versioning --- pyproject.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 57d13b3e..9937ab87 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools>=61", "setuptools-scm>=8.0"] +requires = ["setuptools>=61", "setuptools-git-versioning>=2.0,<3"] build-backend = "setuptools.build_meta" [project] @@ -79,5 +79,6 @@ python_classes = ["Test*"] python_functions = ["test_*"] pythonpath = ["src"] -[tool.setuptools_scm] -local_scheme = "no-local-version" +[tool.setuptools-git-versioning] +enabled = true +dirty_template = "{tag}"