Contribuyendo a Hatcher
¡Gracias por tu interés en contribuir a Hatcher! Esta guía te ayudará a comenzar a contribuir al proyecto.
Código de Conducta
Al participar en este proyecto, aceptas cumplir con nuestro Código de Conducta. Por favor léelo antes de contribuir.
Comenzando
Configuración de Desarrollo
Fork y Clonar
bashgit clone https://github.com/tu-usuario/dx-engine.git cd dx-engine
Instalar Dependencias
bashpnpm install
Iniciar Servidor de Desarrollo
bashpnpm dev
Estructura del Proyecto
dx-engine/
├── apps/
│ ├── electron/ # Proceso principal Electron
│ ├── web/ # Proceso renderer (Vue.js)
│ ├── preload/ # Scripts preload
│ └── docs/ # Documentación VitePress
├── universal/
│ ├── vite-plugin/ # Plugins Vite personalizados
│ └── puppeteer-google-translate/
└── scripts/ # Scripts de construcción y desarrollo
Formas de Contribuir
Reportar Errores
Al reportar errores, incluye:
- Descripción Clara: Qué pasó vs. qué esperabas
- Pasos para Reproducir: Pasos detallados para recrear el problema
- Entorno: SO, versión de Node.js, versión de pnpm
- Capturas de Pantalla: Si aplica, incluye evidencia visual
Usa nuestro template de reporte de errores al crear issues.
Solicitudes de Características
Para sugerir nuevas características:
- Usa nuestro template de solicitud de características
- Describe claramente el problema que resolver
- Proporciona una solución sugerida
- Considera implementaciones alternativas
Contribuciones de Código
Antes de Escribir Código
- Busca issues existentes o crea uno nuevo
- Comenta en el issue para indicar que estás trabajando en él
- Espera confirmación del equipo antes de comenzar trabajo significativo
Proceso de Desarrollo
Crear una Rama
bashgit checkout -b feature/nombre-de-la-caracteristica
Hacer Cambios
- Sigue nuestras normas de codificación
- Escribe tests para nueva funcionalidad
- Actualiza documentación según sea necesario
Probar Localmente
bashpnpm test pnpm lint pnpm build
Hacer Commit
bashgit add . git commit -m "feat: agregar nueva característica X"
Push y Pull Request
bashgit push origin feature/nombre-de-la-caracteristica
Estándares de Contribución
Mensajes de Commit
Usamos Conventional Commits:
feat:
Nueva característicafix:
Corrección de errordocs:
Cambios de documentaciónstyle:
Cambios de formatorefactor:
Refactorización de códigotest:
Agregar o corregir testschore:
Mantenimiento
Estilo de Código
- Usar TypeScript para todo el código nuevo
- Seguir las reglas ESLint configuradas
- Usar Prettier para formato
- Escribir JSDoc para funciones públicas
Testing
- Escribir tests para nueva funcionalidad
- Mantener cobertura de tests >80%
- Tests deben pasar antes del merge
- Incluir tests de integración para características principales
Proceso de Review
Pull Requests
Tu PR será revisado por:
- Automated Checks: CI ejecuta linting, tests y builds
- Code Review: Un mantenedor revisa el código
- Testing: Se prueba manualmente si es necesario
Criterios de Aprobación
- Todos los checks de CI pasan
- Al menos una aprobación de un mantenedor
- No conflictos de merge pendientes
- Documentación actualizada si es necesario
Recursos de Desarrollo
Herramientas Recomendadas
- Editor: VS Code con extensiones TypeScript y Vue
- Terminal: Usa pnpm para todas las operaciones de paquetes
- Debugging: Chrome DevTools para el proceso renderer
Scripts Útiles
bash
# Desarrollo
pnpm dev # Iniciar dev server
pnpm dev:watch # Dev con hot reload
# Testing
pnpm test # Ejecutar todos los tests
pnpm test:coverage # Tests con cobertura
# Build
pnpm build # Build de producción
pnpm pack:dev # Empaqueta para desarrollo
pnpm pack:prod # Empaqueta para producción
# Linting
pnpm lint # Ejecutar ESLint
pnpm lint:fix # Corregir errores de linting automáticamente
Comunidad
Donde Obtener Ayuda
- GitHub Discussions: Para preguntas generales
- GitHub Issues: Para bugs y solicitudes de características
- Discord: Únete a nuestro servidor
- Twitter: @HatcherDX
Reconocimiento
Todos los contribuyentes son reconocidos en:
- El archivo CONTRIBUTORS
- Las notas de release
- Nuestro sitio web y documentación
Licencia
Al contribuir a Hatcher, aceptas que tus contribuciones serán licenciadas bajo la misma Licencia MIT que el proyecto.
¡Gracias por ayudar a hacer Hatcher mejor! 🚀