¡Gracias por tu interés en contribuir a Cryptic! Todas las contribuciones son bienvenidas, ya sean reportes de bugs, mejoras de documentación, nuevas características o correcciones de código.
- Fork el proyecto en GitHub
- Clona tu fork localmente:
git clone https://github.com/tuusuario/cryptic.git cd cryptic - Crea un entorno virtual:
python -m venv venv source venv/bin/activate # En Windows: venv\Scripts\activate
- Instala las dependencias:
pip install -e ".[dev]"
-
Crea una rama para tu contribución:
git checkout -b feature/nueva-funcionalidad # o git checkout -b fix/correccion-bug -
Haz tus cambios siguiendo estas guías:
- Sigue el estilo de código existente (PEP 8)
- Agrega tests para nuevas funcionalidades
- Actualiza la documentación si es necesario
- Asegúrate de que todos los tests pasan
-
Ejecuta los tests:
pytest
-
Verifica el código con herramientas de calidad:
# Formateo automático black cryptic/ tests/ # Verificación de tipos (opcional) mypy cryptic/ # Linting flake8 cryptic/ tests/
-
Haz commit de tus cambios:
git add . git commit -m "feat: agregar nueva funcionalidad de detección de X"
Usa prefijos descriptivos en tus commits:
feat:- Nueva funcionalidadfix:- Corrección de bugdocs:- Cambios en documentacióntest:- Agregar o modificar testsrefactor:- Refactorización de códigochore:- Tareas de mantenimiento
-
Push a tu fork:
git push origin feature/nueva-funcionalidad
-
Abre un Pull Request desde GitHub
-
Describe claramente:
- ¿Qué problema resuelve?
- ¿Cómo se implementó la solución?
- ¿Se agregaron tests?
- ¿Hay algún cambio importante que mencionar?
-
Espera la revisión del código
Si encuentras un bug, por favor abre un issue con:
- Descripción clara del problema
- Pasos para reproducirlo
- Comportamiento esperado vs actual
- Información del entorno (Python version, SO, etc.)
Para mejoras o nuevas funcionalidades:
- Abre un issue describiendo la propuesta
- Discute la implementación con la comunidad
- Si se aprueba, procede con el desarrollo
Las mejoras en documentación son muy valoradas:
- Correcciones de errores tipográficos
- Mejoras en ejemplos
- Traducciones
- Guías adicionales
# Todos los tests
pytest
# Tests específicos
pytest tests/test_analyzer.py
# Con cobertura
pytest --cov=cryptic
# Tests con output detallado
pytest -v- Crea tests para nuevas funcionalidades
- Mantén cobertura > 90%
- Usa nombres descriptivos para funciones de test
- Incluye casos edge y escenarios de error
- Editor: VS Code, PyCharm, Vim, etc.
- Formateador y Linter: Ruff (reemplaza Black + Flake8)
- Type checker: MyPy (opcional)
- Sigue PEP 8
- Usa type hints cuando sea apropiado
- Límites de línea: 127 caracteres (Ruff default)
- Imports ordenados: estándar, terceros, locales
- Usa mensajes claros y descriptivos
- Primera línea: máximo 50 caracteres
- Usa imperativo: "Add" no "Added"
- Referencia issues cuando corresponda:
Closes #123
- Documenta funciones públicas con docstrings
- Usa formato Google o NumPy
- Incluye ejemplos de uso
- Mantén documentación actualizada
Este proyecto sigue el Contributor Covenant Code of Conduct. Al participar, esperas seguir estas guías.
Si tienes dudas:
- Revisa la documentación
- Busca en los issues existentes
- Pregunta en Discussions
¡Gracias por contribuir a hacer Cryptic mejor! Todas las contribuciones son valoradas y reconocidas.
Esta guía está inspirada en las mejores prácticas de proyectos OpenSource exitosos.