Conjunto de herramientas de línea de comandos (pip-compile y pip-sync) que fija dependencias de Python en archivos de requisitos reproducibles y mantiene los entornos sincronizados con ellos.
pypa/setuptools-scm
Herramienta de Python que obtiene las versiones de los paquetes a partir de etiquetas de Git o Mercurial y se integra con setuptools.
- Estrellas
- 955
- Forks
- 251
- Issues abiertos
- 26
- Último commit
- hace 14 horas
¿Qué es?
setuptools-scm obtiene las versiones de los paquetes de Python a partir de los metadatos del sistema de control de versiones de un proyecto, normalmente etiquetas de Git o Mercurial. En lugar de mantener manualmente una cadena de versión en los archivos de configuración, la versión se calcula durante la compilación a partir de la etiqueta más reciente y el estado de los commits, para que las versiones publicadas y las compilaciones de desarrollo sean coherentes con el historial del repositorio.
El paquete se integra con setuptools y también puede usarse por separado mediante sus propias herramientas. El repositorio es un monorepo que contiene dos proyectos: setuptools-scm y vcs-versioning, una biblioteca básica de control de versiones que puede usarse independientemente de setuptools.
El repositorio usa uv para gestionar las dependencias e incluye comandos para instalar todos los paquetes y grupos de dependencias, ejecutar las suites de pytest de cada proyecto y generar la documentación compartida con mkdocs.
Funciones clave
- 01Obtiene las versiones a partir de etiquetas de Git o Mercurial durante la compilación.
- 02Se integra con setuptools para compilar paquetes de Python.
- 03Incluye vcs-versioning como biblioteca independiente que puede usarse sin setuptools.
- 04Incluye suites de pruebas que se ejecutan con pytest y documentación que se genera con mkdocs.
Casos de uso
- Mantener las versiones de los paquetes de Python vinculadas a las etiquetas de Git sin editar manualmente las cadenas de versión.
- Gestionar las versiones de un proyecto de Python cuyo historial está en Git o Mercurial.
- Reutilizar la detección de versiones basada en VCS en herramientas que no usan setuptools.
Inicio rápido
- 1
Instala todos los paquetes y grupos de dependencias con uv
uv sync --all-packages --all-groups - 2
Ejecuta la suite de pruebas
uv run pytest -n12
Temas
Preguntas frecuentes
- ¿Qué es setuptools-scm?
- Herramienta de Python que obtiene las versiones de los paquetes a partir de etiquetas de Git o Mercurial y se integra con setuptools. setuptools-scm obtiene las versiones de los paquetes de Python a partir de los metadatos del sistema de control de versiones de un proyecto, normalmente etiquetas de Git o Mercurial. En lugar de mantener manualmente una cadena de versión en los archivos de configuración, la versión se calcula durante la compilación a partir de la etiqueta más reciente y el estado de los commits, para que las versiones publicadas y las compilaciones de desarrollo sean coherentes con el historial del repositorio.
- ¿setuptools-scm es gratuito? ¿Qué licencia tiene?
- setuptools-scm no declara ninguna licencia. Su código es público, pero sin licencia no tienes permiso explícito para reutilizarlo; consulta al autor antes de depender de él.
- ¿setuptools-scm sigue mantenido?
- Mantenimiento activo. El último commit de setuptools-scm fue el 7 nov 2026.
- ¿Para qué puedo usar setuptools-scm?
- Mantener las versiones de los paquetes de Python vinculadas a las etiquetas de Git sin editar manualmente las cadenas de versión. Gestionar las versiones de un proyecto de Python cuyo historial está en Git o Mercurial. Reutilizar la detección de versiones basada en VCS en herramientas que no usan setuptools.
- ¿Cómo se instala setuptools-scm?
- Instala todos los paquetes y grupos de dependencias con uv: uv sync --all-packages --all-groups Ejecuta la suite de pruebas: uv run pytest -n12
- ¿Dónde consigo setuptools-scm?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pypa/setuptools-scm
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Gestor moderno y extensible de proyectos Python para gestionar compilaciones, entornos, pruebas, linting, versiones y publicaciones.
Herramienta CLI genérica que automatiza el aumento de versión, las etiquetas de Git, los changelogs, las releases de GitHub/GitLab y la publicación en npm.
Generador de proyectos Python que crea paquetes instalables y listos para PyPI, con tox, pytest, documentación de Sphinx y control de versiones con Git preconfigurados.
Guarda notebooks de Jupyter como archivos Markdown o scripts de Python, Julia y R para compararlos y versionarlos fácilmente en Git.
Colección de plantillas .gitignore para lenguajes de programación, frameworks, editores y sistemas operativos, usada en las páginas de creación de repositorios de GitHub.