From ba0b8a333d11febcea33d61be8f6b1f8e785c2ed Mon Sep 17 00:00:00 2001 From: Jon Grace-Cox <30441316+jongracecox@users.noreply.github.com> Date: Mon, 30 Dec 2024 09:01:00 -0500 Subject: [PATCH] chore: Use git tag for package version Update `setup.py` to use git tag for package version. --- setup.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 3b86372..e14dfe4 100644 --- a/setup.py +++ b/setup.py @@ -1,23 +1,39 @@ #!/usr/bin/python import os import re +import subprocess from setuptools import setup with open("README.md", encoding="utf-8") as f: long_description = f.read() -# Attempt to get version number from TravisCI environment variable -version = os.environ.get("TRAVIS_TAG", default="0.0.0") -# Remove leading 'v' -version = re.sub("^v", "", version) +def get_version(): + """Get the version from git tags. + + Version is determined by the latest git tag, and will be the tag name without the leading 'v'. + + Returns: + str: The version number. + """ + try: + # Get the latest git tag + version = subprocess.check_output( + ["git", "describe", "--tags", "--abbrev=0"], encoding="utf-8" + ).strip() + version = re.sub("^v", "", version) + return version + + except subprocess.CalledProcessError: + return "0.0.0" + setup( name="anybadge", description="Simple, flexible badge generator for project badges.", long_description=long_description, long_description_content_type="text/markdown", - version=version, + version=get_version(), author="Jon Grace-Cox", author_email="30441316+jongracecox@users.noreply.github.com", packages=["anybadge", "anybadge.templates", "anybadge.server"],