From 89786f5c35b33fc8b48dc38e97384feebfbc7923 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Mon, 23 Mar 2026 18:34:47 +0000 Subject: [PATCH] python-vcs-versioning: add new package (version 1.0.1) vcs-versioning provides the core VCS version inference logic that was extracted from setuptools-scm into a standalone library. This enables other build backends to use the same version inference without a setuptools dependency. Required as a new dependency for setuptools-scm >= 10.0.0. Co-Authored-By: Claude Sonnet 4.6 Signed-off-by: Alexandru Ardelean --- lang/python/python-vcs-versioning/Makefile | 58 ++++++++++++++++++++++ lang/python/python-vcs-versioning/test.sh | 26 ++++++++++ 2 files changed, 84 insertions(+) create mode 100644 lang/python/python-vcs-versioning/Makefile create mode 100755 lang/python/python-vcs-versioning/test.sh diff --git a/lang/python/python-vcs-versioning/Makefile b/lang/python/python-vcs-versioning/Makefile new file mode 100644 index 0000000000..eefa7f6a5a --- /dev/null +++ b/lang/python/python-vcs-versioning/Makefile @@ -0,0 +1,58 @@ +# +# Copyright (C) 2025 Alexandru Ardelean +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-vcs-versioning +PKG_VERSION:=1.0.1 +PKG_RELEASE:=1 + +PYPI_NAME:=vcs-versioning +PYPI_SOURCE_NAME:=vcs_versioning +PKG_HASH:=bd597fd2c79dc4ea0a59fc6a525793acb7d2ba06ee64b80750b97e92b6bcf691 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Alexandru Ardelean + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-hatchling/host \ + python-installer/host \ + python-packaging/host \ + python-typing-extensions/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-vcs-versioning + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=core version inference logic for VCS-based versioning + URL:=https://github.com/pypa/setuptools-scm + DEPENDS:= \ + +python3-light \ + +python3-packaging \ + +python3-typing-extensions + BUILDONLY:=1 +endef + +define Package/python3-vcs-versioning/description +vcs-versioning provides the core VCS version inference logic used by +setuptools-scm. It enables other build backends to use the same version +inference without a setuptools dependency. +endef + +$(eval $(call Py3Package,python3-vcs-versioning)) +$(eval $(call BuildPackage,python3-vcs-versioning)) +$(eval $(call BuildPackage,python3-vcs-versioning-src)) +$(eval $(call HostBuild)) diff --git a/lang/python/python-vcs-versioning/test.sh b/lang/python/python-vcs-versioning/test.sh new file mode 100755 index 0000000000..3b2436b9a4 --- /dev/null +++ b/lang/python/python-vcs-versioning/test.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +[ "$1" = "python3-vcs-versioning" ] || exit 0 + +python3 - << EOF +import sys +import vcs_versioning + +if vcs_versioning.__version__ != "$2": + print("Wrong version: " + vcs_versioning.__version__) + sys.exit(1) + +# Test core classes are importable +from vcs_versioning import Configuration, ScmVersion, Version +from vcs_versioning import DEFAULT_VERSION_SCHEME, DEFAULT_LOCAL_SCHEME + +# Test Version parsing +v = Version("1.2.3") +assert str(v) == "1.2.3", f"Expected 1.2.3, got {v}" + +# Test default schemes are set +assert DEFAULT_VERSION_SCHEME is not None +assert DEFAULT_LOCAL_SCHEME is not None + +sys.exit(0) +EOF