# 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](#code-de-conduite) - [Comment contribuer](#comment-contribuer) - [Processus de développement](#processus-de-développement) - [Standards de code](#standards-de-code) - [Tests](#tests) - [Documentation](#documentation) - [Déploiement](#déploiement) - [Questions et support](#questions-et-support) ## 🤝 Code de conduite Ce projet adhère à notre [Code de Conduite](CODE_OF_CONDUCT.md). 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 ```bash # 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) ```bash # Formatage cargo fmt # Linting cargo clippy # Tests cargo test # Documentation cargo doc --open ``` #### TypeScript/JavaScript (frontend) ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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](https://semver.org/) : - **MAJOR** : Changements incompatibles - **MINOR** : Nouvelles fonctionnalités compatibles - **PATCH** : Corrections de bugs ## 📄 Licence Ce projet est sous licence MIT. Voir le fichier [LICENSE](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