From a87e12bf1b42098483b52a00f4a65c53046f0bc0 Mon Sep 17 00:00:00 2001 From: sebthom Date: Fri, 12 Jan 2024 01:41:18 +0100 Subject: [PATCH] use more predictable version numbers --- docker/image/Dockerfile | 2 +- kleinanzeigen_bot/__init__.py | 2 +- pyproject.toml | 11 ++++++----- version.py | 13 +++++++++++++ 4 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 version.py diff --git a/docker/image/Dockerfile b/docker/image/Dockerfile index 9548cc6..de384b4 100644 --- a/docker/image/Dockerfile +++ b/docker/image/Dockerfile @@ -71,7 +71,7 @@ ENV PATH="/opt/upx:${PATH}" COPY kleinanzeigen_bot /opt/app/kleinanzeigen_bot COPY .git /opt/app/.git -COPY README.md pdm.lock pyinstaller.spec pyproject.toml /opt/app/ +COPY README.md pdm.lock pyinstaller.spec pyproject.toml version.py /opt/app/ RUN < str: - return importlib.metadata.version(__package__) + return importlib.metadata.version(__package__).removesuffix(".editable") def run(self, args:list[str]) -> None: self.parse_args(args) diff --git a/pyproject.toml b/pyproject.toml index dd3cad9..bd1c59e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,9 +5,9 @@ # SPDX-ArtifactOfProjectHomePage: https://github.com/Second-Hand-Friends/kleinanzeigen-bot/ # -[build-system] -requires = ["pdm-pep517"] -build-backend = "pdm.pep517.api" +[build-system] # https://backend.pdm-project.org/ +requires = ["pdm-backend"] +build-backend = "pdm.backend" [project] name = "kleinanzeigen-bot" @@ -52,8 +52,9 @@ Issues = "https://github.com/Second-Hand-Friends/kleinanzeigen-bot/issues" ##################### # pdm https://github.com/pdm-project/pdm/ ##################### -[tool.pdm] -version = {use_scm = true} +[tool.pdm.version] # https://backend.pdm-project.org/metadata/#dynamic-project-version +source = "call" +getter = "version:get_version" [tool.pdm.dev-dependencies] dev = [ diff --git a/version.py b/version.py new file mode 100644 index 0000000..ac64618 --- /dev/null +++ b/version.py @@ -0,0 +1,13 @@ +""" +SPDX-FileCopyrightText: © Sebastian Thomschke and contributors +SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-ArtifactOfProjectHomePage: https://github.com/Second-Hand-Friends/kleinanzeigen-bot/ +""" +from datetime import datetime +import subprocess + + +# used in pyproject.toml [tool.pdm.version] +def get_version() -> str: + commit_hash = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode().strip() + return f"{datetime.now().year}+{commit_hash}"