# Guide de contribution Merci de votre intérêt pour contribuer au Pipeline Notarial ! Ce document explique comment contribuer au projet. ## Comment contribuer ### Signaler un bug 1. Vérifiez que le bug n'a pas déjà été signalé dans les [issues](https://github.com/4nkweb/notariat-pipeline/issues) 2. Créez une nouvelle issue avec le label "bug" 3. Incluez : - Description détaillée du problème - Étapes pour reproduire - Environnement (OS, version Docker, etc.) - Logs d'erreur si disponibles ### Proposer une fonctionnalité 1. Vérifiez que la fonctionnalité n'a pas déjà été proposée 2. Créez une nouvelle issue avec le label "enhancement" 3. Décrivez : - Le problème que cela résout - La solution proposée - Les cas d'usage - Les considérations techniques ### Contribuer au code 1. Fork le projet 2. Créez une branche feature (`git checkout -b feature/ma-fonctionnalite`) 3. Committez vos changements (`git commit -am 'Ajout de ma fonctionnalité'`) 4. Poussez vers la branche (`git push origin feature/ma-fonctionnalite`) 5. Ouvrez une Pull Request ## Standards de code ### Python - Respectez PEP 8 - Utilisez des docstrings pour les fonctions et classes - Ajoutez des tests pour les nouvelles fonctionnalités - Utilisez des noms de variables explicites ### Docker - Utilisez des images officielles quand possible - Optimisez la taille des images - Documentez les variables d'environnement - Utilisez des tags de version spécifiques ### Documentation - Mettez à jour le README si nécessaire - Documentez les nouvelles API - Ajoutez des exemples d'usage - Utilisez un français correct ## Tests ### Tests unitaires ```bash # Installation des dépendances de test pip install pytest pytest-cov # Exécution des tests pytest tests/ # Avec couverture pytest --cov=services tests/ ``` ### Tests d'intégration ```bash # Démarrage de l'environnement de test docker compose -f docker-compose.test.yml up -d # Exécution des tests d'intégration pytest tests/integration/ # Nettoyage docker compose -f docker-compose.test.yml down -v ``` ### Tests de performance ```bash # Installation de Locust pip install locust # Exécution des tests de performance locust -f tests/performance/locustfile.py --host=http://localhost ``` ## Processus de review 1. **Automatique** : Les tests doivent passer 2. **Manuel** : Au moins un reviewer doit approuver 3. **Critères** : - Code lisible et bien documenté - Tests appropriés - Pas de régression - Respect des standards ## Environnement de développement ### Prérequis - Docker et Docker Compose - Python 3.11+ - Git - Make ### Configuration 1. Clonez le projet 2. Copiez la configuration : ```bash cp infra/.env.example infra/.env ``` 3. Modifiez les variables selon vos besoins 4. Démarrez l'environnement : ```bash make bootstrap ``` ### Structure du projet ``` notariat-pipeline/ ├── docker/ # Dockerfiles ├── infra/ # Configuration Docker Compose ├── ops/ # Scripts d'installation et seeds ├── services/ # Code applicatif │ ├── host_api/ # API FastAPI │ ├── worker/ # Pipelines Celery │ └── charts/ # Dashboards Grafana └── tests/ # Tests automatisés ``` ## Communication - **Issues** : Pour les bugs et fonctionnalités - **Discussions** : Pour les questions générales - **Pull Requests** : Pour les contributions de code ## Code de conduite Ce projet suit le [Code de Conduite Contributor Covenant](CODE_OF_CONDUCT.md). En participant, vous acceptez de respecter ce code. ## Licence En contribuant, vous acceptez que vos contributions soient sous la licence MIT du projet. ## Questions ? N'hésitez pas à ouvrir une issue pour toute question sur le processus de contribution.