ihm_client/CONTRIBUTING.md

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

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

  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 :

  • 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

Ressources


Merci de contribuer à ihm_client ! 🚀