🚀 Guía de Contribución a Rocketdoo
¡Gracias por tu interés en contribuir a Rocketdoo! Esta guía te explica todo lo que necesitás saber para sumarte al proyecto de manera ordenada y efectiva.
Tabla de contenidos
- Estructura de branches
- Configurar el entorno de desarrollo
- Instalar Rocketdoo en modo desarrollo
- Probar tu rama sin afectar la versión productiva
- Flujo de trabajo paso a paso
- Convenciones de código
- Cómo abrir un Pull Request
- Reportar bugs o sugerir mejoras
Estructura de branches
Rocketdoo utiliza el siguiente modelo de ramas:
main ← versión estable, publicada en PyPI
└── dev/v2 ← desarrollo activo de la próxima versión
└── feature/nombre-de-la-feature ← tu contribución
└── fix/nombre-del-bug
└── chore/tarea-de-mantenimiento
Regla de oro: nunca trabajar directamente sobre
mainnidev/v2. Siempre crear una rama nueva desdedev/v2.
Configurar el entorno de desarrollo
Requisitos previos
- Python 3.8 o superior
- Git
pipactualizado (pip install --upgrade pip)
1. Hacer fork del repositorio
Desde GitHub, hacé clic en Fork en la esquina superior derecha del repositorio de Rocketdoo.
2. Clonar tu fork localmente
3. Agregar el repositorio original como remote
Esto te permite sincronizarte con los cambios del repo original cuando sea necesario:
Instalar Rocketdoo en modo desarrollo
Para poder modificar el código y ver los cambios reflejados de inmediato, instalá el paquete en modo editable dentro de un entorno virtual dedicado.
Crear un entorno virtual exclusivo para desarrollo
Activarlo:
Instalar la rama de desarrollo
Una vez activado el venv-dev, instalá la rama específica directamente desde GitHub:
Probar los comandos en un directorio vacío
Rocketdoo requiere comenzar desde un directorio vacío, ya que el primer comando (rkd scaffold) es el que genera toda la estructura del proyecto. Por eso el entorno de prueba debe ser una carpeta nueva y limpia:
# Crear carpeta de prueba vacía
mkdir mi-prueba && cd mi-prueba
# Ejecutar el primer comando de Rocketdoo
rkd scaffold
A partir de ahí podés continuar probando el resto de los comandos sobre la estructura generada por scaffold.
Probar tu rama sin afectar la versión productiva
El método recomendado es instalar la rama directamente desde GitHub en una carpeta de prueba vacía, sin necesidad de clonar el repo completo. Así podés ejecutar todos los comandos de Rocketdoo en un entorno limpio y aislado.
Opción A — Con pipx (recomendado para CLI) ✅
pipx es ideal porque instala Rocketdoo en un entorno aislado y expone los comandos globalmente. Usando --suffix podés tener la versión productiva y la de prueba al mismo tiempo, sin conflictos:
# Instalar la rama de prueba con un sufijo para distinguirla
pipx install git+https://github.com/OWNER/rocketdoo.git@feature/mi-feature --suffix=-test
Esto te da dos comandos disponibles en paralelo:
rocketdoo # ← versión productiva instalada desde PyPI (intacta)
rocketdoo-test # ← versión de tu rama de prueba
Para actualizar cuando pusheás nuevos cambios a la rama:
Para desinstalar cuando terminaste de probar:
Opción B — Con pip dentro de un venv (para probar imports o scripts)
Si necesitás probar integraciones de Python además de los comandos CLI:
# Crear carpeta de prueba vacía
mkdir test-rocketdoo && cd test-rocketdoo
# Crear y activar un venv exclusivo
python -m venv venv-test
source venv-test/bin/activate # Linux / macOS
# .\venv-test\Scripts\activate # Windows
# Instalar la rama específica
pip install git+https://github.com/OWNER/rocketdoo.git@feature/mi-feature
Para actualizar cuando pusheás cambios:
Repo privado: autenticación con token
Si el repositorio es privado, necesitás un token de acceso personal de GitHub:
Resumen
| Método | Cuándo usarlo |
|---|---|
pipx install git+... --suffix=-test |
Recomendado. Probar comandos CLI sin tocar la versión productiva |
pip install git+... dentro de venv |
Probar imports de Python o integraciones en scripts |
Flujo de trabajo paso a paso
1. Sincronizate con la última versión de dev/v2
2. Crear tu rama de trabajo
git checkout -b feature/nombre-descriptivo
# Ejemplos:
# git checkout -b feature/soporte-multi-modelo
# git checkout -b fix/error-en-parser
# git checkout -b chore/actualizar-dependencias
3. Desarrollar y testear
Hacé tus cambios, ejecutá los tests y asegurate de que todo funcione:
4. Hacer commits descriptivos
Usamos el estilo Conventional Commits:
git add .
git commit -m "feat: agregar soporte para modelos locales via Ollama"
git commit -m "fix: corregir error de encoding en respuestas largas"
git commit -m "docs: actualizar README con nuevo ejemplo de uso"
git commit -m "chore: actualizar versión de httpx a 0.27"
Tipos de commit:
| Tipo | Cuándo usarlo |
|------|--------------|
| feat | Nueva funcionalidad |
| fix | Corrección de un bug |
| docs | Cambios en documentación |
| chore | Tareas de mantenimiento (deps, CI, etc.) |
| refactor | Refactorización sin cambio de comportamiento |
| test | Agregar o corregir tests |
| style | Cambios de formato (sin lógica) |
5. Subir tu rama al fork
6. Abrir el Pull Request
Abrí el PR desde tu fork hacia dev/v2 del repositorio original (no hacia main).
Convenciones de código
- Seguimos PEP 8 para estilo de código Python.
- Usamos type hints donde sea posible.
- Todo código nuevo debe incluir docstrings básicos.
- Si agregás una feature, incluí al menos un test que la cubra.
- Evitá introducir dependencias nuevas sin justificación y discusión previa en el issue correspondiente.
Cómo abrir un Pull Request
Al abrir el PR, por favor incluí:
- Descripción clara de qué cambia y por qué.
- Issue relacionado si existe (ej:
Closes #42). - Cómo probar los cambios: comandos, casos de prueba, etc.
- Si aplica, capturas de pantalla o ejemplos de output.
El PR debe apuntar a dev/v2, no a main. Los mantenedores revisarán el código, pueden solicitar cambios, y cuando esté aprobado lo mergearán.
Reportar bugs o sugerir mejoras
Antes de abrir un issue, buscá si ya existe uno similar. Si no, abrí uno nuevo con:
- Descripción del problema o la mejora propuesta.
- Versión de Rocketdoo (
pip show rocketdoo). - Versión de Python (
python --version). - Sistema operativo.
- Pasos para reproducir el bug (si aplica).
- Comportamiento esperado vs. comportamiento actual.
¿Dudas?
Abrí una Discussion en GitHub o contactá a los mantenedores del proyecto. ¡Toda contribución, por pequeña que sea, es bienvenida!
Este documento es parte de la documentación oficial de Rocketdoo.