Skip to content

Contribuire a Tuvix.js ​

Grazie per il tuo interesse nel contribuire! Che si tratti di una correzione di bug, una nuova funzionalità, un miglioramento della documentazione o una traduzione, tutti i contributi sono benvenuti.

Modi per Contribuire ​

  • Segnalazioni di bug - Apri un issue
  • Richieste di funzionalità - Avvia una discussione
  • Codice - Correggi bug, aggiungi funzionalità, migliora i test
  • Documentazione - Correggi errori di battitura, aggiungi esempi, migliora la chiarezza
  • Traduzioni - Aggiungi o migliora la documentazione in altre lingue

Per Iniziare ​

1. Fork e Clone ​

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

2. Installare le Dipendenze ​

Utilizziamo pnpm e Node.js ≥ 18.

bash
pnpm install

3. Compilare Tutti i Pacchetti ​

bash
pnpm build

4. Eseguire i Test ​

bash
pnpm test

5. Avviare il Server di Sviluppo della Documentazione ​

bash
cd website
pnpm install
pnpm dev

Apri http://localhost:5173 nel tuo browser per visualizzare l'anteprima della documentazione.

Struttura del Progetto ​

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/     Configurazione e tema VitePress
    ├── guide/          Documentazione in inglese
    ├── packages/       Documentazione API dei pacchetti
    ├── tr/             Traduzioni in turco
    ├── es/             Traduzioni in spagnolo
    └── ...             Altre lingue

Stile del Codice ​

  • TypeScript - modalità strict, tutto il codice deve essere tipizzato
  • Prettier - esegui pnpm format per formattare
  • Nessuna dipendenza runtime - i pacchetti devono avere zero dipendenze runtime
  • Export nominati - evita gli export di default
  • Messaggi di errore - prefissare con [Tuvix ...]

Messaggi di Commit ​

Seguiamo 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

Processo di Pull Request ​

  1. Crea un branch da master:

    bash
    git checkout -b feat/la-mia-funzionalita
  2. Apporta le modifiche e aggiungi i test

  3. Esegui la suite di test completa:

    bash
    pnpm test
    pnpm check-types
    pnpm lint
  4. Se la tua modifica riguarda un pacchetto pubblicato, aggiungi un changeset:

    bash
    pnpm changeset
  5. Fai push e apri un PR contro master

  6. Un maintainer esaminerà il tuo PR. Per favore rispondi ai feedback entro 7 giorni.

Aggiungere una Traduzione ​

Tutta la documentazione è in Markdown sotto website/. Ogni lingua ha la propria directory:

website/
├── index.md              ← Inglese (radice)
├── guide/                ← Guide in inglese
├── tr/                   ← Turco
│   ├── index.md
│   ├── guide/
│   └── packages/
├── es/                   ← Spagnolo
└── ...

Passaggi per aggiungere o migliorare una traduzione ​

  1. Copia i file inglesi da website/guide/ a website/<lang>/guide/
  2. Traduci il contenuto Markdown (mantieni i blocchi di codice in inglese)
  3. Aggiorna la configurazione della sidebar in website/.vitepress/config/<lang>.ts
  4. Esegui cd website && pnpm dev per l'anteprima

Suggerimenti per la Traduzione

  • Mantieni tutti gli esempi di codice in inglese
  • Traduci le etichette dell'interfaccia, le descrizioni e il testo esplicativo
  • Usa la terminologia nativa dove esistono traduzioni standard

Lingue Supportate ​

LinguaCodiceStato
IngleseenCompleto (riferimento)
TurcotrIn corso
SpagnoloesIn corso
TedescodeIn corso
FrancesefrIn corso
GiapponesejaIn corso
CinesezhIn corso
ItalianoitIn corso
PortogheseptIn corso
HindihiIn corso

Se desideri contribuire a una di queste lingue, controlla gli issue di traduzione aperti o aprine uno nuovo.

Codice di Condotta ​

Questo progetto segue il Contributor Covenant. Sii rispettoso e costruttivo.

Licenza ​

Contribuendo, accetti che i tuoi contributi saranno licenziati sotto la Licenza MIT.