ihm_client/CONTRIBUTING.md

312 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 ! 🚀