Search K
Contribuir
Gracias por tu interés en contribuir. Esta guía cubre cómo participar, qué aceptamos y cómo empezar.
Formas de contribuir
Issues (sin configuración)
- Informes de errores - ¿Algo no funciona? Abre un informe de error con los pasos para reproducirlo.
- Solicitudes de funciones - ¿Tienes una idea? Inicia una discusión para que la comunidad opine y la vote.
- Problemas de traducción - ¿Detectas una traducción incorrecta o faltante? Abre un issue de traducción.
- Problemas de documentación - ¿Algo raro en la documentación? Abre un issue de documentación.
Código (requiere CLA)
Aceptamos pull requests para:
| Tipo | Proceso |
|---|---|
| Correcciones de errores | Abre un PR directamente (enlaza el issue si existe) |
| Nuevas traducciones | Abre un PR directamente (consulta la Guía de traducción) |
| Mejoras de documentación | Abre un PR directamente |
| Mejoras en la cobertura de pruebas | Abre un PR directamente |
| Nuevas herramientas o funciones | Inicia primero una discusión; un mantenedor convierte las ideas aprobadas en un issue con seguimiento antes de que escribas código |
| Refactorizaciones o cambios de arquitectura | Inicia primero una discusión y espera la aprobación de un mantenedor antes de escribir código |
Lo que no aceptaremos
- Cambios en los flujos de trabajo de CI/CD, la configuración de release o la configuración del linter/compilador
- PRs sin un Acuerdo de Licencia de Contribuidor firmado
- PRs con más de 400 líneas de cambios (divide el trabajo grande en PRs más pequeños)
- Funciones que no se hayan discutido y aprobado antes
- Cambios en
packages/ai/sin discusión previa
Acuerdo de Licencia de Contribuidor
Antes de poder fusionar tu primer PR, debes firmar nuestro CLA Individual. Es un requisito único.
Por qué: SnapOtter tiene licencia dual (AGPLv3 + comercial). El CLA nos otorga el derecho a distribuir tus contribuciones bajo ambas licencias. Conservas la plena titularidad de los derechos de autor sobre tu trabajo.
Cómo: Cuando abras tu primer PR, el bot CLA Assistant comentará con un enlace. Haz clic en él, revisa el acuerdo y fírmalo con tu cuenta de GitHub. Tarda 30 segundos.
Si contribuyes en nombre de tu empleador y este conserva los derechos de propiedad intelectual sobre tu trabajo, contacta con [email protected] para gestionar un CLA Corporativo antes de enviar tu contribución.
Cómo empezar
Requisitos previos
- Node.js 22+
- pnpm 9+
- Python 3.11+ (solo para herramientas de IA)
- Docker (opcional, para pruebas de integración completas)
Configuración
bash
# Fork and clone
git clone https://github.com/<your-username>/snapotter.git
cd snapotter
# Start Postgres + Redis for local dev
docker compose -f docker-compose.dev.yml up -d
# Install dependencies
pnpm install
# Start dev servers (web on :1349, API on :13490)
pnpm devEjecutar comprobaciones
Antes de enviar un PR, asegúrate de que todas las comprobaciones pasen localmente:
bash
pnpm lint # Biome lint + format check
pnpm typecheck # TypeScript across monorepo
pnpm test # Vitest unit + integration testsProceso de pull request
- Haz un fork del repositorio y crea una rama a partir de
main(feat/my-featureofix/issue-123) - Realiza tus cambios en commits enfocados y revisables usando conventional commits
- Añade o actualiza pruebas para tus cambios
- Ejecuta
pnpm lint && pnpm typecheck && pnpm testlocalmente - Abre un PR contra
mainy rellena la plantilla - Firma el CLA si se te solicita
- Espera a que CI pase y a que un mantenedor lo revise
Qué esperar de la revisión
- Intentamos responder a los PRs en un plazo de 7 días
- Los PRs pequeños y enfocados se revisan más rápido
- Si no recibes respuesta en 7 días, deja un comentario mencionando el hilo
- Podemos solicitar cambios, sugerir un enfoque diferente o cerrar el PR si no encaja con la dirección del proyecto
Después de que se fusione tu PR
Tu contribución se incluirá en la siguiente versión y se acreditará en el changelog.
Buenos primeros issues
¿Buscas en qué trabajar? Revisa nuestros good first issues para tareas aptas para principiantes, o help wanted para tareas más grandes en las que agradeceríamos la ayuda de la comunidad.
Estilo de código
- Biome se encarga del formato y el linting (comillas dobles, punto y coma, indentación de 2 espacios)
- El hook de pre-commit ejecuta
biome check --writeautomáticamente sobre los archivos en staging - Si el linter se queja, corrige el código (no modifiques la configuración de Biome)
- Módulos ES en todas partes (
import/export) - Conventional commits:
feat:,fix:,refactor:,docs:,test:,chore:
Para los detalles completos de la arquitectura, consulta la Guía del desarrollador.
Seguridad
No abras un PR o issue público para vulnerabilidades de seguridad. Repórtalas de forma privada a través de GitHub Security Advisories o por correo a [email protected]. Consulta SECURITY.md para todos los detalles.
