7.2 KiB
7.2 KiB
Guide de Contribution - ihm_client
Merci de votre intérêt pour contribuer au projet ihm_client ! Ce guide vous aidera à comprendre comment participer au développement de cette interface utilisateur pour les Silent Payments.
📋 Table des Matières
- 🎯 Comment Contribuer
- 🚀 Premiers Pas
- 🔧 Environnement de Développement
- 📝 Processus de Contribution
- 🧪 Tests
- 📚 Documentation
- 🐛 Signaler un Bug
- 💡 Proposer une Fonctionnalité
- 🔍 Code Review
- 📦 Release
🎯 Comment Contribuer
Types de Contributions
Nous accueillons différents types de contributions :
- 🐛 Bug fixes - Correction de bugs et problèmes
- ✨ Nouvelles fonctionnalités - Ajout de nouvelles capacités
- 📚 Documentation - Amélioration de la documentation
- 🧪 Tests - Ajout ou amélioration des tests
- 🔧 Outils - Amélioration des scripts et outils
- 🌐 Traductions - Traduction de la documentation
- 📊 Performance - Optimisations de performance
- 🔒 Sécurité - Améliorations de sécurité
Niveaux de Contribution
- Débutant - Documentation, tests, petits bugs
- Intermédiaire - Nouvelles fonctionnalités, améliorations UI
- Avancé - Architecture WASM, optimisations majeures
🚀 Premiers Pas
Prérequis
- Node.js 18+ et npm
- Git configuré
- Rust (pour le développement WASM)
- Docker (pour l'intégration 4NK_node)
- Connexion Internet stable
Fork et Clone
# 1. Fork le repository sur Gitea
# 2. Clone votre fork
git clone https://git.4nkweb.com/votre-username/ihm_client.git
cd ihm_client
# 3. Ajouter le repository original comme upstream
git remote add upstream https://git.4nkweb.com/4nk/ihm_client.git
Branches
# Créer une branche pour votre contribution
git checkout -b feature/nom-de-votre-feature
# ou
git checkout -b fix/nom-du-bug
🔧 Environnement de Développement
Installation Locale
# 1. Cloner le repository
git clone https://git.4nkweb.com/4nk/ihm_client.git
cd ihm_client
# 2. Installer les dépendances
npm install
# 3. Configurer les dépendances WASM
./scripts/setup-remote-deps.sh
# 4. Démarrer le serveur de développement
npm run dev
Configuration de Développement
# Variables d'environnement pour le développement
export NODE_ENV=development
export VITE_DEV_SERVER_PORT=3000
export VITE_API_URL=http://localhost:8091
Outils de Développement
# Tests
npm run test
# Build de production
npm run build
# Linting
npm run lint
# Type checking
npm run type-check
📝 Processus de Contribution
1. Préparation
# Mettre à jour votre branche
git checkout main
git pull upstream main
# Créer votre branche de feature
git checkout -b feature/votre-feature
2. Développement
- Suivez les conventions de code
- Écrivez des tests pour les nouvelles fonctionnalités
- Mettez à jour la documentation si nécessaire
- Vérifiez que les tests passent
3. Commit
# Ajouter vos changements
git add .
# Créer un commit descriptif
git commit -m "feat: ajout de la fonctionnalité X
- Description détaillée des changements
- Impact sur l'interface utilisateur
- Tests ajoutés"
4. Push et Pull Request
# Pousser votre branche
git push origin feature/votre-feature
# Créer une Pull Request sur Gitea
🧪 Tests
Types de Tests
- Unit Tests - Tests des composants individuels
- Integration Tests - Tests d'intégration WASM
- E2E Tests - Tests end-to-end de l'interface
- Performance Tests - Tests de performance
Exécution des Tests
# Tous les tests
npm run test
# Tests unitaires uniquement
npm run test:unit
# Tests d'intégration
npm run test:integration
# Tests avec couverture
npm run test:coverage
📚 Documentation
Mise à Jour de la Documentation
- README.md - Documentation principale
- docs/ - Documentation technique détaillée
- CHANGELOG.md - Historique des changements
- API.md - Documentation des APIs
Standards de Documentation
- Écrire en français
- Utiliser des exemples concrets
- Inclure des captures d'écran pour l'UI
- Maintenir la cohérence du style
🐛 Signaler un Bug
Template de Bug Report
**Description du bug**
Description claire et concise du problème.
**Étapes pour reproduire**
1. Aller à '...'
2. Cliquer sur '...'
3. Voir l'erreur
**Comportement attendu**
Description de ce qui devrait se passer.
**Captures d'écran**
Si applicable, ajouter des captures d'écran.
**Environnement**
- OS: [ex: Windows 10, macOS, Linux]
- Navigateur: [ex: Chrome, Firefox, Safari]
- Version: [ex: 1.0.0]
**Informations supplémentaires**
Contexte supplémentaire sur le problème.
💡 Proposer une Fonctionnalité
Template de Feature Request
**Problème à résoudre**
Description claire du problème que cette fonctionnalité résoudrait.
**Solution proposée**
Description de la solution souhaitée.
**Alternatives considérées**
Autres solutions envisagées.
**Contexte supplémentaire**
Informations supplémentaires, captures d'écran, etc.
🔍 Code Review
Critères de Review
- Fonctionnalité - Le code fait-il ce qu'il doit faire ?
- Qualité - Le code est-il propre et maintenable ?
- Tests - Y a-t-il des tests appropriés ?
- Documentation - La documentation est-elle mise à jour ?
- Performance - L'impact sur les performances est-il acceptable ?
Processus de Review
- Automatique - Tests et linting
- Review - Review par un mainteneur
- Approbation - Approbation requise pour merge
- Merge - Intégration dans la branche principale
📦 Release
Processus de Release
- Préparation - Mise à jour du CHANGELOG
- Versioning - Incrémentation de la version
- Build - Build de production
- Tests - Tests de validation
- Tag - Création du tag de release
- Déploiement - Déploiement en production
Versioning
Nous suivons le Semantic Versioning :
- MAJOR - Changements incompatibles
- MINOR - Nouvelles fonctionnalités compatibles
- PATCH - Corrections de bugs compatibles
🤝 Code de Conduite
Nos Standards
- Être respectueux et inclusif
- Utiliser un langage accueillant
- Accepter les critiques constructives
- Se concentrer sur ce qui est le mieux pour la communauté
Nos Responsabilités
- Clarifier les standards de comportement acceptable
- Prendre des mesures correctives appropriées
- Supprimer, éditer ou rejeter les commentaires inappropriés
📞 Support
Obtenir de l'Aide
- Issues - Git.4nkweb.com
- Documentation - docs/
- Discussions - Git.4nkweb.com
Ressources
Merci de contribuer à ihm_client ! 🚀