Proyecto de pruebas con Python + uv + release-please.
# Instalar dependencias (crea .venv automáticamente)
uv sync
# Instalar en modo desarrollo con todas las dependencias
uv sync --extra dev# Ejecutar el CLI
uv run test-bots
# Formatear código
uv run ruff format .
# Lint
uv run ruff check .
# Type checking
uv run mypy src/
# Tests
uv run pytestEste proyecto usa release-please para generar releases automáticamente desde conventional commits.
Los commits deben seguir el formato Conventional Commits:
| Tipo | Descripción | Bump de versión |
|---|---|---|
feat: |
Nueva feature | minor (0.1.0 → 0.2.0) |
fix: |
Bug fix | patch (0.1.0 → 0.1.1) |
docs: |
Solo documentación | ninguno |
style: |
Formato, sin cambios de código | ninguno |
refactor: |
Refactor, no fix ni feature | ninguno |
perf: |
Mejora de performance | patch |
test: |
Tests | ninguno |
chore: |
Build, deps, tooling | ninguno |
ci: |
CI/CD changes | ninguno |
revert: |
Revert commit | según el commit revertido |
feat!: o BREAKING CHANGE: en footer |
Breaking change | major (0.1.0 → 1.0.0) |
- Push a
main: Cada push amaincon conventional commits activa el workflow de release-please. - PR de release: Release-please crea/actualiza un PR
chore: release X.Y.Zacumulando todos los cambios desde la última release. - Merge del PR: Al mergear el PR de release, release-please crea automáticamente:
- El tag
vX.Y.Z - La GitHub Release con el changelog
- Actualiza
CHANGELOG.mdy.release-please-manifest.json
- El tag
# Desarrollo normal con conventional commits
git commit -m "feat: add bot configuration module"
git commit -m "fix: handle timeout in bot runner"
git commit -m "feat!: migrate to async architecture"
# Push a main → release-please crea PR de release automáticamente
git push origin main
# En GitHub: review y merge del PR "chore: release 0.2.0"
# → Se crea el tag v0.2.0 y la release con changelog| Módulo | Descripción |
|---|---|
test_bots.config |
Configuración de bots con validación |
test_bots.runner |
Ejecución de bots (simple y concurrente) |
test_bots.utils |
Utilidades de logging y validación de nombres |
.
├── .github/workflows/release-please.yml # Workflow de release-please
├── src/test_bots/ # Código fuente
│ ├── __init__.py
│ ├── config.py
│ ├── runner.py
│ └── utils.py
├── pyproject.toml # Configuración del proyecto (uv + hatchling)
├── release-please-config.json # Config de release-please
└── .release-please-manifest.json # Versión actual (se actualiza automáticamente)