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
git clone https://github.com/TUO_NOME_UTENTE/tuvix.js.git
cd tuvix.js2. Installare le Dipendenze
Utilizziamo pnpm e Node.js ≥ 18.
pnpm install3. Compilare Tutti i Pacchetti
pnpm build4. Eseguire i Test
pnpm test5. Avviare il Server di Sviluppo della Documentazione
cd website
pnpm install
pnpm devApri 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 lingueStile del Codice
- TypeScript - modalità strict, tutto il codice deve essere tipizzato
- Prettier - esegui
pnpm formatper 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 testsProcesso di Pull Request
Crea un branch da
master:bashgit checkout -b feat/la-mia-funzionalitaApporta le modifiche e aggiungi i test
Esegui la suite di test completa:
bashpnpm test pnpm check-types pnpm lintSe la tua modifica riguarda un pacchetto pubblicato, aggiungi un changeset:
bashpnpm changesetFai push e apri un PR contro
masterUn 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
- Copia i file inglesi da
website/guide/awebsite/<lang>/guide/ - Traduci il contenuto Markdown (mantieni i blocchi di codice in inglese)
- Aggiorna la configurazione della sidebar in
website/.vitepress/config/<lang>.ts - Esegui
cd website && pnpm devper 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
| Lingua | Codice | Stato |
|---|---|---|
| Inglese | en | Completo (riferimento) |
| Turco | tr | In corso |
| Spagnolo | es | In corso |
| Tedesco | de | In corso |
| Francese | fr | In corso |
| Giapponese | ja | In corso |
| Cinese | zh | In corso |
| Italiano | it | In corso |
| Portoghese | pt | In corso |
| Hindi | hi | In 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.