4NK_IA_back/CONTRIBUTING.md
root 5a8cc38eaa fix: Correction configuration MinIO et amélioration déploiement
- Correction de l'endpoint MinIO dans docker-compose.yml (suppression du protocole http://)
- Création automatique du fichier .env avec les bonnes configurations
- Ajout du script start-stack.sh pour faciliter le déploiement
- Suppression du fichier docker-compose.simple.yml
- Mise à jour de la documentation avec section de dépannage
- Mise à jour du numéro de version à 1.2.1

Résout le problème 'path in endpoint is not allowed' de MinIO
2025-09-10 21:29:25 +02:00

3.8 KiB

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
  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

# 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

# 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

# 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 :
    cp infra/.env.example infra/.env
    
  3. Modifiez les variables selon vos besoins
  4. Démarrez l'environnement :
    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. 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.