4NK_env/CONTRIBUTING.md

6.5 KiB

Contribuer à 4NK Environment

Merci de votre intérêt pour contribuer au projet 4NK Environment ! Ce document fournit des directives pour contribuer efficacement à l'écosystème 4NK.

📋 Table des matières

🤝 Code de conduite

Ce projet adhère à notre Code de Conduite. En participant, vous acceptez de respecter ces règles.

🚀 Comment contribuer

Types de contributions

  • 🐛 Corrections de bugs : Signaler et corriger des problèmes
  • Nouvelles fonctionnalités : Ajouter des capacités
  • 📚 Documentation : Améliorer la documentation
  • 🧪 Tests : Ajouter ou améliorer les tests
  • 🔧 Maintenance : Refactoring, optimisation, nettoyage

Processus de contribution

  1. Créer une issue pour discuter des changements majeurs
  2. Fork le repository si nécessaire
  3. Créer une branche de fonctionnalité
  4. Développer avec les standards de code
  5. Tester vos modifications
  6. Documenter les changements
  7. Soumettre une Pull Request

🛠️ Processus de développement

Structure du projet

4NK_env/
├── 4NK_modules/          # Modules 4NK (SDKs, services)
├── projects/             # Projets applicatifs (LeCoffre)
├── docs/                 # Documentation technique
├── IA_agents/            # Agents IA et prompts
├── scripts/              # Scripts de déploiement
└── confs/                # Configurations centralisées

Branches

  • main : Branche principale stable
  • ext : Branche de développement étendue
  • feature/* : Nouvelles fonctionnalités
  • fix/* : Corrections de bugs
  • docs/* : Améliorations documentation

Workflow Git

# 1. Créer une branche de fonctionnalité
git checkout -b feature/nouvelle-fonctionnalite

# 2. Développer et tester
# ... modifications ...

# 3. Commiter avec un message descriptif
git add .
git commit -m "feat: ajouter nouvelle fonctionnalité X"

# 4. Pousser la branche
git push origin feature/nouvelle-fonctionnalite

# 5. Créer une Pull Request (si applicable)

📝 Standards de code

Messages de commit

Utilisez le format conventionnel :

type(scope): description

[corps optionnel]

[footer optionnel]

Types :

  • feat : Nouvelle fonctionnalité
  • fix : Correction de bug
  • docs : Documentation
  • style : Formatage, point-virgules manquants, etc.
  • refactor : Refactoring de code
  • test : Ajout de tests
  • chore : Maintenance, dépendances

Exemples :

feat(sdk_relay): ajouter support WebSocket sécurisé
fix(lecoffre): corriger authentification OAuth2
docs(architecture): mettre à jour diagrammes de flux

Standards par technologie

Rust (modules 4NK)

# Formatage
cargo fmt

# Linting
cargo clippy

# Tests
cargo test

# Documentation
cargo doc --open

TypeScript/JavaScript (frontend)

# Formatage
npm run format

# Linting
npm run lint

# Tests
npm test

# Build
npm run build

Docker

  • Utiliser des images officielles
  • Multi-stage builds pour optimiser la taille
  • Utilisateurs non-root
  • Healthchecks appropriés

🧪 Tests

Tests obligatoires

  • Tests unitaires : Fonctionnalités individuelles
  • Tests d'intégration : Interactions entre composants
  • Tests de déploiement : Validation des scripts
  • Tests de sécurité : Vérification des bonnes pratiques

Exécution des tests

# Tests globaux
./scripts/test-all.sh

# Tests par module
cd 4NK_modules/sdk_relay && cargo test
cd projects/lecoffre/lecoffre-front && npm test

# Tests de déploiement
./scripts/validate-deployment.sh

📚 Documentation

Types de documentation

  • README.md : Vue d'ensemble du projet
  • docs/ : Documentation technique détaillée
  • IA_agents/ : Prompts et guides pour agents IA
  • Commentaires de code : Documentation inline

Standards de documentation

  • Markdown pour tous les documents
  • Diagrammes avec Mermaid ou PlantUML
  • Exemples de code fonctionnels
  • Liens vers les ressources externes

Mise à jour de la documentation

# Vérifier la cohérence
./scripts/validate-docs.sh

# Générer la documentation
./scripts/generate-docs.sh

🚀 Déploiement

Environnements

  • Développement : Tests et développement local
  • Staging : Validation avant production
  • Production : Environnement de production

Processus de déploiement

  1. Tests : Validation complète
  2. Build : Construction des artefacts
  3. Déploiement : Mise en production
  4. Validation : Vérification post-déploiement
  5. Monitoring : Surveillance continue

Scripts de déploiement

# Déploiement complet
./scripts/deploy-all.sh

# Déploiement par phase
./scripts/deploy-phase-base.sh
./scripts/deploy-phase-blockchain.sh
./scripts/deploy-phase-application.sh

🔒 Sécurité

Bonnes pratiques

  • Aucun secret dans le code source
  • Variables d'environnement pour la configuration
  • Utilisateurs non-root dans les conteneurs
  • Clés SSH pour l'authentification Git
  • Chiffrement des données sensibles

Signalement de vulnérabilités

Pour signaler une vulnérabilité de sécurité :

  1. Ne pas créer d'issue publique
  2. Contacter directement l'équipe de sécurité
  3. Attendre la confirmation avant divulgation

📞 Questions et support

Canaux de communication

  • Issues GitHub : Bugs et demandes de fonctionnalités
  • Discussions : Questions générales
  • Documentation : Guides et références

Obtenir de l'aide

  1. Consulter la documentation existante
  2. Rechercher dans les issues existantes
  3. Créer une nouvelle issue si nécessaire
  4. Fournir le contexte et les détails

🏷️ Versioning

Le projet utilise le Semantic Versioning :

  • MAJOR : Changements incompatibles
  • MINOR : Nouvelles fonctionnalités compatibles
  • PATCH : Corrections de bugs

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

🙏 Remerciements

Merci à tous les contributeurs qui rendent ce projet possible !


Dernière mise à jour : 2024-09-25 Version : 1.0.0