pypa/setuptools-scm

the blessed package to manage your versions by scm tags

Python

953

2,694 commits

updated Oct 7, 2026

See the code

README

setuptools-scm Monorepo

This is the monorepo for the setuptools-scm ecosystem, containing two main projects:

Projects

setuptools-scm

The main package that extracts Python package versions from Git or Mercurial metadata and provides setuptools integration.

Read setuptools-scm documentation →

vcs-versioning

Core VCS versioning functionality extracted as a standalone library that can be used independently of setuptools.

Read vcs-versioning documentation →

Development

This workspace uses uv for dependency management.

Setup

# Install all packages with all dependency groups (tests, docs, etc.)
uv sync --all-packages --all-groups

Running Tests

# Run all tests
uv run pytest -n12

# Run tests for setuptools-scm only
uv run pytest setuptools-scm/testing_scm -n12

# Run tests for vcs-versioning only
uv run pytest vcs-versioning/testing_vcs -n12

Building Documentation

Documentation is shared across projects:

uv run mkdocs serve

License

Both projects are distributed under the terms of the MIT license.

metadata
packaging
python
version-control

pypa/setuptools-scm

the blessed package to manage your versions by scm tags

Python

953

2,694 commits

updated Oct 7, 2026

See the code

README

setuptools-scm Monorepo

This is the monorepo for the setuptools-scm ecosystem, containing two main projects:

Projects

setuptools-scm

The main package that extracts Python package versions from Git or Mercurial metadata and provides setuptools integration.

Read setuptools-scm documentation →

vcs-versioning

Core VCS versioning functionality extracted as a standalone library that can be used independently of setuptools.

Read vcs-versioning documentation →

Development

This workspace uses uv for dependency management.

Setup

# Install all packages with all dependency groups (tests, docs, etc.)
uv sync --all-packages --all-groups

Running Tests

# Run all tests
uv run pytest -n12

# Run tests for setuptools-scm only
uv run pytest setuptools-scm/testing_scm -n12

# Run tests for vcs-versioning only
uv run pytest vcs-versioning/testing_vcs -n12

Building Documentation

Documentation is shared across projects:

uv run mkdocs serve

License

Both projects are distributed under the terms of the MIT license.

metadata
packaging
python
version-control

Significant stargazers

(top 24 of 30)

Pradyun Gedam

1,104 followers · starred Nov 2017

Julien Danjou

1,295 followers · starred Apr 2019

Hannes Mühleisen

695 followers · starred Sep 2019

Nikolaus Waxweiler

66 followers · starred Jun 2019