Contribuer à Tuvix.js
Merci de votre intérêt pour la contribution ! Qu'il s'agisse d'une correction de bug, d'une nouvelle fonctionnalité, d'une amélioration de la documentation ou d'une traduction, toutes les contributions sont les bienvenues.
Façons de Contribuer
- Rapports de bugs - Ouvrir un issue
- Demandes de fonctionnalités - Démarrer une discussion
- Code - Corriger des bugs, ajouter des fonctionnalités, améliorer les tests
- Documentation - Corriger les fautes de frappe, ajouter des exemples, améliorer la clarté
- Traductions - Ajouter ou améliorer la documentation dans d'autres langues
Pour Commencer
1. Fork et Clone
git clone https://github.com/VOTRE_NOM_UTILISATEUR/tuvix.js.git
cd tuvix.js2. Installer les Dépendances
Nous utilisons pnpm et Node.js ≥ 18.
pnpm install3. Compiler Tous les Paquets
pnpm build4. Exécuter les Tests
pnpm test5. Démarrer le Serveur de Développement de la Documentation
cd website
pnpm install
pnpm devOuvrez http://localhost:5173 dans votre navigateur pour prévisualiser la documentation.
Structure du Projet
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/ Configuration et thème VitePress
├── guide/ Documentation en anglais
├── packages/ Documentation API des paquets
├── tr/ Traductions en turc
├── es/ Traductions en espagnol
└── ... Autres languesStyle de Code
- TypeScript - mode strict, tout le code doit être typé
- Prettier - exécutez
pnpm formatpour formater - Aucune dépendance d'exécution - les paquets doivent avoir zéro dépendance d'exécution
- Exports nommés - évitez les exports par défaut
- Messages d'erreur - préfixer avec
[Tuvix ...]
Messages de Commit
Nous suivons 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 testsProcessus de Pull Request
Créez une branche depuis
master:bashgit checkout -b feat/ma-fonctionnaliteEffectuez vos modifications et ajoutez des tests
Exécutez la suite de tests complète :
bashpnpm test pnpm check-types pnpm lintSi votre modification affecte un paquet publié, ajoutez un changeset :
bashpnpm changesetPoussez et ouvrez un PR contre
masterUn mainteneur examinera votre PR. Veuillez répondre aux retours dans un délai de 7 jours.
Ajouter une Traduction
Toute la documentation est en Markdown sous website/. Chaque langue a son propre répertoire :
website/
├── index.md ← Anglais (racine)
├── guide/ ← Guides en anglais
├── tr/ ← Turc
│ ├── index.md
│ ├── guide/
│ └── packages/
├── es/ ← Espagnol
└── ...Étapes pour ajouter ou améliorer une traduction
- Copiez les fichiers anglais de
website/guide/verswebsite/<lang>/guide/ - Traduisez le contenu Markdown (gardez les blocs de code en anglais)
- Mettez à jour la configuration de la barre latérale dans
website/.vitepress/config/<lang>.ts - Exécutez
cd website && pnpm devpour prévisualiser
Conseils de Traduction
- Gardez tous les exemples de code en anglais
- Traduisez les libellés de l'interface, les descriptions et le texte explicatif
- Utilisez la terminologie native lorsque des traductions standard existent
Langues Supportées
| Langue | Code | Statut |
|---|---|---|
| Anglais | en | Complet (référence) |
| Turc | tr | En cours |
| Espagnol | es | En cours |
| Allemand | de | En cours |
| Français | fr | En cours |
| Japonais | ja | En cours |
| Chinois | zh | En cours |
| Italien | it | En cours |
| Portugais | pt | En cours |
| Hindi | hi | En cours |
Si vous souhaitez contribuer à l'une de ces langues, consultez les issues de traduction ouverts ou ouvrez-en un nouveau.
Code de Conduite
Ce projet suit le Contributor Covenant. Soyez respectueux et constructif.
Licence
En contribuant, vous acceptez que vos contributions soient licenciées sous la Licence MIT.