ci: docker_tag=dev-test - Mise à jour CONTRIBUTING.md complet et standardisé
This commit is contained in:
parent
300cae7b70
commit
39018669b9
@ -1 +1 @@
|
|||||||
Subproject commit 8f5bc9cf3975e213b341953ec1cfbd659c34107b
|
Subproject commit 710481d3348427fa7e52ad614192a854eb3340f9
|
@ -1 +1 @@
|
|||||||
Subproject commit 308183b163552c084ee06eb04a308ee6ff86062c
|
Subproject commit f1558d5eb58ef2d176d1edbd5bc3cecad5a748c7
|
@ -1 +1 @@
|
|||||||
Subproject commit 729ffa8f508fb4c341e5d4db142c824543fcf2d8
|
Subproject commit fe2c21c0403a7034764af8d20e1fb6736c843118
|
@ -1 +1 @@
|
|||||||
Subproject commit 2d5f731133f49a86e858c1749390f5d6edd26701
|
Subproject commit 6733f79b83012cc0c8dc851fee20fa1890bbc77f
|
@ -1 +1 @@
|
|||||||
Subproject commit f93d86aa10de71ca4f4a62d77280692d5fd7ba46
|
Subproject commit 867cc4837bdce7de875643554720685ef48df3f5
|
@ -1 +1 @@
|
|||||||
Subproject commit 236a0646ae3875957525b6151fe6eda657ff10ab
|
Subproject commit f9929262a236356b731aa9afbac46bb7bcb45148
|
@ -1 +1 @@
|
|||||||
Subproject commit 0d5e181c82ea160fb70851f6114673218ca4113a
|
Subproject commit 89f75321b0705e1e299ef31452afffa97bc47fab
|
@ -1 +1 @@
|
|||||||
Subproject commit b375e76bd9aab68c97732556215c001618cb0955
|
Subproject commit af49ee7f1b22dad44e9cb157438c88a727150ab1
|
@ -1 +1 @@
|
|||||||
Subproject commit ba2e6a5e964cc7339baa105e89ce6e81aded70cf
|
Subproject commit b151d6b53ebb3e10cea976c4ef50c99a2085019b
|
@ -1 +1 @@
|
|||||||
Subproject commit e2e3121a4e8535e4afdd21e32f7ea7ef7056d8b9
|
Subproject commit 3eb898827ff255e8675ba46c9285126cb273bab4
|
@ -1 +1 @@
|
|||||||
Subproject commit d66bfc4009f5f5376a154a053a94d6878fa1c57e
|
Subproject commit 08d64fc0d256a71bccbf03358b5eab91ef1e3fb0
|
@ -1 +1 @@
|
|||||||
Subproject commit e86f687f6c8145bd2a51e49aab732cdc50e2aed2
|
Subproject commit 16383491b494e05e691334ba1c4d1bb15333f8ea
|
281
CONTRIBUTING.md
281
CONTRIBUTING.md
@ -1,8 +1,277 @@
|
|||||||
# Contribuer à sdk_storage
|
# Contribuer à 4NK Environment
|
||||||
|
|
||||||
Merci de proposer des issues et des Pull Requests.
|
Merci de votre intérêt pour contribuer au projet 4NK Environment ! Ce document fournit des directives pour contribuer efficacement à l'écosystème 4NK.
|
||||||
|
|
||||||
- Discutez via une issue avant une modification majeure.
|
## 📋 Table des matières
|
||||||
- Travaillez sur une branche `feature/...`.
|
|
||||||
- Ajoutez systématiquement des tests (`tests/`) et mettez à jour la documentation (`docs/`).
|
- [Code de conduite](#code-de-conduite)
|
||||||
- Assurez-vous que `cargo fmt`, `cargo clippy` et `cargo test` passent localement.
|
- [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
|
Loading…
x
Reference in New Issue
Block a user