6.5 KiB
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
- Comment contribuer
- Processus de développement
- Standards de code
- Tests
- Documentation
- Déploiement
- Questions et support
🤝 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
- Créer une issue pour discuter des changements majeurs
- Fork le repository si nécessaire
- Créer une branche de fonctionnalité
- Développer avec les standards de code
- Tester vos modifications
- Documenter les changements
- 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 stableext
: Branche de développement étenduefeature/*
: Nouvelles fonctionnalitésfix/*
: Corrections de bugsdocs/*
: 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 bugdocs
: Documentationstyle
: Formatage, point-virgules manquants, etc.refactor
: Refactoring de codetest
: Ajout de testschore
: 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
- Tests : Validation complète
- Build : Construction des artefacts
- Déploiement : Mise en production
- Validation : Vérification post-déploiement
- 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é :
- Ne pas créer d'issue publique
- Contacter directement l'équipe de sécurité
- 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
- Consulter la documentation existante
- Rechercher dans les issues existantes
- Créer une nouvelle issue si nécessaire
- 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