312 lines
7.2 KiB
Markdown
312 lines
7.2 KiB
Markdown
# 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](#-comment-contribuer)
|
||
- [🚀 Premiers Pas](#-premiers-pas)
|
||
- [🔧 Environnement de Développement](#️-environnement-de-développement)
|
||
- [📝 Processus de Contribution](#-processus-de-contribution)
|
||
- [🧪 Tests](#-tests)
|
||
- [📚 Documentation](#-documentation)
|
||
- [🐛 Signaler un Bug](#-signaler-un-bug)
|
||
- [💡 Proposer une Fonctionnalité](#-proposer-une-fonctionnalité)
|
||
- [🔍 Code Review](#-code-review)
|
||
- [📦 Release](#-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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```markdown
|
||
**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
|
||
|
||
```markdown
|
||
**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
|
||
|
||
1. **Automatique** - Tests et linting
|
||
2. **Review** - Review par un mainteneur
|
||
3. **Approbation** - Approbation requise pour merge
|
||
4. **Merge** - Intégration dans la branche principale
|
||
|
||
## 📦 Release
|
||
|
||
### Processus de Release
|
||
|
||
1. **Préparation** - Mise à jour du CHANGELOG
|
||
2. **Versioning** - Incrémentation de la version
|
||
3. **Build** - Build de production
|
||
4. **Tests** - Tests de validation
|
||
5. **Tag** - Création du tag de release
|
||
6. **Déploiement** - Déploiement en production
|
||
|
||
### Versioning
|
||
|
||
Nous suivons le [Semantic Versioning](https://semver.org/) :
|
||
|
||
- **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](https://git.4nkweb.com/4nk/ihm_client/issues)
|
||
- **Documentation** - [docs/](docs/)
|
||
- **Discussions** - [Git.4nkweb.com](https://git.4nkweb.com/4nk/ihm_client)
|
||
|
||
### Ressources
|
||
|
||
- [Documentation Vue.js](https://vuejs.org/guide/)
|
||
- [Documentation TypeScript](https://www.typescriptlang.org/docs/)
|
||
- [Documentation WASM](https://webassembly.org/docs/)
|
||
|
||
---
|
||
|
||
Merci de contribuer à ihm_client ! 🚀
|