Conjunto de ferramentas de linha de comando (pip-compile e pip-sync) que fixa dependências Python em arquivos de requirements reproduzíveis e mantém os ambientes sincronizados com eles.
pypa/setuptools-scm
Ferramenta Python que obtém a versão de pacotes a partir de tags do Git ou Mercurial e se integra ao setuptools.
- Estrelas
- 955
- Forks
- 251
- Issues abertas
- 26
- Último commit
- há 14 horas
O que é?
setuptools-scm extrai as versões de pacotes Python dos metadados do sistema de controle de versão de um projeto, normalmente das tags do Git ou Mercurial. Em vez de manter uma string de versão manualmente nos arquivos de configuração, a versão é calculada durante o build com base na tag mais recente e no estado dos commits, mantendo releases e builds de desenvolvimento alinhados ao histórico do repositório.
O pacote se integra ao setuptools e também pode ser usado de forma independente por meio de suas próprias ferramentas. O repositório é um monorepo que contém dois projetos: o próprio setuptools-scm e o vcs-versioning, uma biblioteca central de versionamento baseado em VCS que pode ser usada sem o setuptools.
O repositório usa uv para gerenciar dependências e inclui comandos para instalar todos os pacotes e grupos de dependências, executar as suítes de testes de cada projeto com pytest e gerar a documentação compartilhada com mkdocs.
Recursos principais
- 01Obtém versões a partir de tags do Git ou Mercurial durante o build.
- 02Integra-se ao setuptools para gerar builds de pacotes Python.
- 03Inclui o vcs-versioning como biblioteca independente, que pode ser usada sem o setuptools.
- 04Inclui suítes de testes executadas com pytest e documentação gerada com mkdocs.
Casos de uso
- Manter as versões de pacotes Python vinculadas às tags do Git sem editar strings de versão manualmente.
- Definir a versão de um projeto Python controlado pelo Git ou Mercurial.
- Reutilizar a detecção de versões baseada em VCS em ferramentas que não usam setuptools.
Início rápido
- 1
Instale todos os pacotes e grupos de dependências com uv
uv sync --all-packages --all-groups - 2
Execute a suíte de testes
uv run pytest -n12
Tópicos
Perguntas frequentes
- O que é setuptools-scm?
- Ferramenta Python que obtém a versão de pacotes a partir de tags do Git ou Mercurial e se integra ao setuptools. setuptools-scm extrai as versões de pacotes Python dos metadados do sistema de controle de versão de um projeto, normalmente das tags do Git ou Mercurial. Em vez de manter uma string de versão manualmente nos arquivos de configuração, a versão é calculada durante o build com base na tag mais recente e no estado dos commits, mantendo releases e builds de desenvolvimento alinhados ao histórico do repositório.
- setuptools-scm é gratuito? Qual é a licença?
- setuptools-scm não declara licença. O código é público, mas sem licença você não tem permissão explícita para reutilizá-lo; fale com o autor antes de depender dele.
- setuptools-scm ainda é mantido?
- Manutenção ativa. O último commit de setuptools-scm foi em 7 de nov. de 2026.
- Para que posso usar setuptools-scm?
- Manter as versões de pacotes Python vinculadas às tags do Git sem editar strings de versão manualmente. Definir a versão de um projeto Python controlado pelo Git ou Mercurial. Reutilizar a detecção de versões baseada em VCS em ferramentas que não usam setuptools.
- Como instalar setuptools-scm?
- Instale todos os pacotes e grupos de dependências com uv: uv sync --all-packages --all-groups Execute a suíte de testes: uv run pytest -n12
- Onde consigo setuptools-scm?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pypa/setuptools-scm
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Gerenciador moderno e extensível de projetos Python, que cuida de builds, ambientes, testes, linting, versões e publicação.
Ferramenta CLI genérica que automatiza atualizações de versão, tags no Git, changelogs, releases no GitHub/GitLab e publicação no npm.
Gerador de projetos Python que cria pacotes instaláveis e prontos para o PyPI, com tox, pytest, documentação Sphinx e versionamento Git pré-configurados.
Armazena notebooks Jupyter como Markdown puro ou scripts Python, Julia e R, facilitando a comparação de diferenças e o versionamento no Git.
Coleção de modelos .gitignore para linguagens de programação, frameworks, editores e sistemas operacionais, usada nas páginas de criação de repositórios do GitHub.