python-vcs-versioning: add new package (version 1.0.1)
authorAlexandru Ardelean <redacted>
Mon, 23 Mar 2026 18:34:47 +0000 (18:34 +0000)
committerAlexandru Ardelean <redacted>
Tue, 24 Mar 2026 04:24:12 +0000 (06:24 +0200)
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 <redacted>
Signed-off-by: Alexandru Ardelean <redacted>
lang/python/python-vcs-versioning/Makefile [new file with mode: 0644]
lang/python/python-vcs-versioning/test.sh [new file with mode: 0755]

diff --git a/lang/python/python-vcs-versioning/Makefile b/lang/python/python-vcs-versioning/Makefile
new file mode 100644 (file)
index 0000000..eefa7f6
--- /dev/null
@@ -0,0 +1,58 @@
+#
+# Copyright (C) 2025 Alexandru Ardelean <ardeleanalex@gmail.com>
+#
+# 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 <ardeleanalex@gmail.com>
+
+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 (executable)
index 0000000..3b2436b
--- /dev/null
@@ -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
git clone https://git.99rst.org/PROJECT