Skip to content

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 ​

bash
git clone https://github.com/TU_USUARIO/tuvix.js.git
cd tuvix.js

2. Instalar Dependencias ​

Usamos pnpm y Node.js ≥ 18.

bash
pnpm install

3. Compilar Todos los Paquetes ​

bash
pnpm build

4. Ejecutar Pruebas ​

bash
pnpm test

5. Iniciar el Servidor de Desarrollo de Documentación ​

bash
cd website
pnpm install
pnpm dev

Abre 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 idiomas

Estilo de Código ​

  • TypeScript - modo estricto, todo el código debe estar tipado
  • Prettier - ejecuta pnpm format para 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 tests

Proceso de Pull Request ​

  1. Crea una rama desde master:

    bash
    git checkout -b feat/mi-funcionalidad
  2. Realiza tus cambios y agrega pruebas

  3. Ejecuta la suite completa de pruebas:

    bash
    pnpm test
    pnpm check-types
    pnpm lint
  4. Si tu cambio afecta un paquete publicado, agrega un changeset:

    bash
    pnpm changeset
  5. Haz push y abre un PR contra master

  6. Un 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 ​

  1. Copia los archivos en inglés de website/guide/ a website/<lang>/guide/
  2. Traduce el contenido Markdown (mantén los bloques de código en inglés)
  3. Actualiza la configuración del sidebar en website/.vitepress/config/<lang>.ts
  4. Ejecuta cd website && pnpm dev para 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 ​

IdiomaCódigoEstado
InglésenCompleto (referencia)
TurcotrEn progreso
EspañolesEn progreso
AlemándeEn progreso
FrancésfrEn progreso
JaponésjaEn progreso
ChinozhEn progreso
ItalianoitEn progreso
PortuguésptEn progreso
HindihiEn 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.