¡Gracias por tu interés en contribuir a ModelRouter!
Este proyecto se adhiere a un código de conducta. Al participar, se espera que mantengas un ambiente respetuoso y constructivo.
- Verifica que el bug no haya sido reportado en Issues
- Abre un nuevo issue con:
- Descripción clara del problema
- Pasos para reproducir
- Comportamiento esperado vs. real
- Versiones (Python, OS, dependencias)
- Logs relevantes (sin datos sensibles)
- Abre un issue con etiqueta "enhancement"
- Describe el caso de uso
- Propón una solución
- Espera feedback antes de implementar
-
Fork el repositorio
-
Crea una rama desde
mainodevelop:git checkout -b feature/mi-feature
-
Implementa cambios:
- Sigue el estilo de código existente
- Añade tests para nuevo código
- Actualiza documentación si es necesario
-
Ejecuta tests y lint:
python scripts/test.py all
-
Commit con mensajes descriptivos:
git commit -m "feat: añade soporte para provider X" -
Push a tu fork:
git push origin feature/mi-feature
-
Abre Pull Request hacia
mainodevelopcon descripción detallada de los cambios.
- Formato: Black con line-length=88
- Linting: Flake8
- Type hints: Obligatorio en funciones públicas
- Docstrings: Google style para módulos/clases/funciones
- Coverage mínimo: 80%
- Tests unitarios para lógica de negocio
- Tests de integración para endpoints
- Mocks para dependencias externas (Redis, HTTP)
Seguimos Conventional Commits:
feat:Nueva funcionalidadfix:Corrección de bugdocs:Cambios en documentacióntest:Añadir/modificar testsrefactor:Refactorización sin cambio de funcionalidadchore:Tareas de mantenimiento
- Los mantainers revisarán tu PR
- Puede haber comentarios/sugerencias
- Actualiza tu PR según feedback
- Una vez aprobado, se mergeará
Sigue los pasos detallados en Desarrollo Local para preparar tu entorno
Si tienes dudas, abre un issue con etiqueta "question" o únete a Discussions.
¡Gracias por contribuir!