Contribuir a Tuvix.js
¡Gracias por tu interés en contribuir! Ya sea una corrección de errores, una nueva funcionalidad, una mejora en la documentación o una traducción, todas las contribuciones son bienvenidas.
Formas de Contribuir
- Reportes de errores - Abre un issue
- Solicitudes de funcionalidades - Inicia una discusión
- Código - Corrige errores, agrega funcionalidades, mejora pruebas
- Documentación - Corrige erratas, agrega ejemplos, mejora la claridad
- Traducciones - Agrega o mejora la documentación en otros idiomas
Primeros Pasos
1. Fork y Clone
git clone https://github.com/TU_USUARIO/tuvix.js.git
cd tuvix.js2. Instalar Dependencias
Usamos pnpm y Node.js ≥ 18.
pnpm install3. Compilar Todos los Paquetes
pnpm build4. Ejecutar Pruebas
pnpm test5. Iniciar el Servidor de Desarrollo de Documentación
cd website
pnpm install
pnpm devAbre http://localhost:5173 en tu navegador para previsualizar la documentación.
Estructura del Proyecto
tuvix.js/
├── packages/
│ ├── core/ @tuvix.js/core
│ ├── router/ @tuvix.js/router
│ ├── event-bus/ @tuvix.js/event-bus
│ ├── loader/ @tuvix.js/loader
│ ├── sandbox/ @tuvix.js/sandbox
│ ├── react/ @tuvix.js/react
│ ├── vue/ @tuvix.js/vue
│ ├── svelte/ @tuvix.js/svelte
│ ├── angular/ @tuvix.js/angular
│ ├── devtools/ @tuvix.js/devtools
│ ├── server/ @tuvix.js/server
│ ├── module-federation/
│ ├── create-tuvix-app/
│ └── tuvix/ tuvix.js umbrella
└── website/
├── .vitepress/ Configuración y tema de VitePress
├── guide/ Documentación en inglés
├── packages/ Documentación de API de paquetes
├── tr/ Traducciones al turco
├── es/ Traducciones al español
└── ... Otros idiomasEstilo de Código
- TypeScript - modo estricto, todo el código debe estar tipado
- Prettier - ejecuta
pnpm formatpara formatear - Sin dependencias en tiempo de ejecución - los paquetes deben tener cero dependencias en tiempo de ejecución
- Exportaciones con nombre - evita las exportaciones por defecto
- Mensajes de error - prefijar con
[Tuvix ...]
Mensajes de Commit
Seguimos Conventional Commits:
feat: add hash mode to router
fix(sandbox): clean up event listeners on unmount
docs: add Angular guide example
chore: bump vitepress to 1.7.0
test(event-bus): add once() edge case testsProceso de Pull Request
Crea una rama desde
master:bashgit checkout -b feat/mi-funcionalidadRealiza tus cambios y agrega pruebas
Ejecuta la suite completa de pruebas:
bashpnpm test pnpm check-types pnpm lintSi tu cambio afecta un paquete publicado, agrega un changeset:
bashpnpm changesetHaz push y abre un PR contra
masterUn mantenedor revisará tu PR. Por favor responde a los comentarios dentro de 7 días.
Agregar una Traducción
Toda la documentación está en Markdown bajo website/. Cada idioma tiene su propio directorio:
website/
├── index.md ← Inglés (raíz)
├── guide/ ← Guías en inglés
├── tr/ ← Turco
│ ├── index.md
│ ├── guide/
│ └── packages/
├── es/ ← Español
└── ...Pasos para agregar o mejorar una traducción
- Copia los archivos en inglés de
website/guide/awebsite/<lang>/guide/ - Traduce el contenido Markdown (mantén los bloques de código en inglés)
- Actualiza la configuración del sidebar en
website/.vitepress/config/<lang>.ts - Ejecuta
cd website && pnpm devpara previsualizar
Consejos de Traducción
- Mantén todos los ejemplos de código en inglés
- Traduce las etiquetas de la interfaz, descripciones y texto explicativo
- Usa terminología nativa cuando existan traducciones estándar
Idiomas Soportados
| Idioma | Código | Estado |
|---|---|---|
| Inglés | en | Completo (referencia) |
| Turco | tr | En progreso |
| Español | es | En progreso |
| Alemán | de | En progreso |
| Francés | fr | En progreso |
| Japonés | ja | En progreso |
| Chino | zh | En progreso |
| Italiano | it | En progreso |
| Portugués | pt | En progreso |
| Hindi | hi | En progreso |
Si deseas contribuir a alguno de estos idiomas, consulta los issues de traducción abiertos o abre uno nuevo.
Código de Conducta
Este proyecto sigue el Contributor Covenant. Sé respetuoso y constructivo.
Licencia
Al contribuir, aceptas que tus contribuciones serán licenciadas bajo la Licencia MIT.