Skip to content

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 ​

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

2. Installer les Dépendances ​

Nous utilisons pnpm et Node.js ≥ 18.

bash
pnpm install

3. Compiler Tous les Paquets ​

bash
pnpm build

4. Exécuter les Tests ​

bash
pnpm test

5. Démarrer le Serveur de Développement de la Documentation ​

bash
cd website
pnpm install
pnpm dev

Ouvrez 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 langues

Style de Code ​

  • TypeScript - mode strict, tout le code doit être typé
  • Prettier - exécutez pnpm format pour 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 tests

Processus de Pull Request ​

  1. Créez une branche depuis master :

    bash
    git checkout -b feat/ma-fonctionnalite
  2. Effectuez vos modifications et ajoutez des tests

  3. Exécutez la suite de tests complète :

    bash
    pnpm test
    pnpm check-types
    pnpm lint
  4. Si votre modification affecte un paquet publié, ajoutez un changeset :

    bash
    pnpm changeset
  5. Poussez et ouvrez un PR contre master

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

  1. Copiez les fichiers anglais de website/guide/ vers website/<lang>/guide/
  2. Traduisez le contenu Markdown (gardez les blocs de code en anglais)
  3. Mettez à jour la configuration de la barre latérale dans website/.vitepress/config/<lang>.ts
  4. Exécutez cd website && pnpm dev pour 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 ​

LangueCodeStatut
AnglaisenComplet (référence)
TurctrEn cours
EspagnolesEn cours
AllemanddeEn cours
FrançaisfrEn cours
JaponaisjaEn cours
ChinoiszhEn cours
ItalienitEn cours
PortugaisptEn cours
HindihiEn 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.