{"categories":[{"label":"Build Tools","url":"https://skillfed.io/packages/category/software-development-build-tools/2"}],"enrichment":{"capability":"Automatically generates PEP 440-compliant version numbers for Python packages based on git repository state (tags, commits, dirty status) during the build process.","skillfed_tags":["build-automation","version-management"],"use_cases":["Automatically version releases by creating git tags without editing version strings in source files.","Generate development versions with commit hashes for pre-release builds and CI/CD pipelines.","Mark builds from uncommitted changes with a 'dirty' suffix to distinguish development snapshots from clean releases.","Maintain a single source of truth for versioning in git history rather than scattered version strings across the codebase."],"what_it_does":"setuptools-git-versioning is a setuptools plugin that derives your package's version number directly from your git repository state at build time. Instead of hardcoding a version string in setup.py or pyproject.toml, it reads git tags, commit hashes, and dirty status to generate a PEP 440-compliant version automatically. This eliminates the need to manually bump version strings before releases and keeps your version source-of-truth in git tags.\n\nThe plugin integrates into the build process via setuptools' build backend or scikit-build-core, supporting both pyproject.toml and setup.py configuration. It offers tag-based, file-based, and callback-based versioning schemas with customizable templates for tagged, development, and dirty-state versions. Configuration is minimal\u2014typically just enabling the plugin and marking version as dynamic\u2014and it requires only git v2 and setuptools to be available.","worth_installing":"Yes, if you use setuptools or scikit-build-core and want to eliminate manual version management. The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. The main constraint is that it requires a git repository and Git v2; if your build process does not have git available or you use a different build backend (Poetry, etc.), it will not work."},"id":"setuptools-git-versioning","links":{"html":"https://skillfed.io/packages/setuptools-git-versioning","md":"https://skillfed.io/packages/setuptools-git-versioning.md","pypi":"https://pypi.org/project/setuptools-git-versioning/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-05-15","license_spdx":null,"license_treatment":"permissive","name":"setuptools-git-versioning","python_support":"supports_current","summary":"Use git repo data for building a version number according to PEP-440"},"popularity":{"monthly_downloads":1571890,"position":3749,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"3.1.0"}
