Contribuer au projet
Cette section explique comment contribuer au projet IziProxy.
Installation de l’environnement de développement
Cloner le dépôt :
git clone https://github.com/votrenom/iziproxy.git
cd iziproxy
Créer et activer un environnement virtuel :
python -m venv venv
source venv/bin/activate # Sur Windows : venv\Scripts\activate
Installer les dépendances de développement :
pip install -e ".[dev]"
Exécuter les tests
Exécuter les tests avec pytest :
pytest
Pour vérifier la couverture de code :
pytest --cov=iziproxy
Style de code
Nous utilisons Black pour le formatage du code :
black src tests
Et Flake8 pour la vérification de la qualité du code :
flake8 src tests
Soumettre une Pull Request
Créez une branche pour votre contribution :
git checkout -b feature/ma-nouvelle-fonctionnalite
Faites vos modifications et testez-les.
Assurez-vous que tous les tests passent :
pytest
Formatez le code avec Black :
black src tests
Vérifiez la qualité du code avec Flake8 :
flake8 src tests
Committez vos modifications :
git commit -am "Ajout de ma nouvelle fonctionnalité"
Poussez vos modifications vers votre fork :
git push origin feature/ma-nouvelle-fonctionnalite
Créez une Pull Request sur GitHub.
Documentation
La documentation est générée avec Sphinx. Pour construire la documentation localement :
cd docs
make html
La documentation générée se trouvera dans docs/build/html.
Pour les docstrings, nous utilisons le format Google Style :
def ma_fonction(parametre):
"""
Description de la fonction
Args:
parametre: Description du paramètre
Returns:
Description de la valeur de retour
Raises:
Exception: Description de l'exception
"""
return parametre
Structure du projet
iziproxy/
├── src/
│ └── iziproxy/ # Package principal
│ ├── __init__.py # Exports principaux
│ ├── proxy_manager.py # Classe principale IziProxy
│ ├── config_manager.py # Gestion de la configuration
│ ├── env_detector.py # Détection d'environnement
│ ├── proxy_detector.py # Détection de proxy
│ ├── secure_config.py # Classes de sécurité
│ ├── ntlm_auth.py # Support NTLM
│ └── logger.py # Utilitaires de logging
├── tests/ # Tests unitaires
├── docs/ # Documentation
├── examples/ # Exemples d'utilisation
├── pyproject.toml # Configuration de build
├── setup.py # Script d'installation
├── README.md # Documentation principale
└── LICENSE # Licence du projet
Ajouter une nouvelle fonctionnalité
Commencez par créer des tests pour votre fonctionnalité.
Implémentez la fonctionnalité.
Documentez la fonctionnalité avec des docstrings et dans la documentation Sphinx.
Ajoutez un exemple d’utilisation dans le répertoire
examples/.Mettez à jour le fichier README.md si nécessaire.
Signaler un bug
Signalez les bugs sur le tracker de problèmes GitHub. Incluez :
La version d’IziProxy que vous utilisez.
Votre environnement Python et système d’exploitation.
Les étapes pour reproduire le bug.
Le comportement attendu et le comportement observé.
Tout message d’erreur ou traceback.
Demande de fonctionnalité
Les demandes de fonctionnalités sont les bienvenues ! Pour proposer une nouvelle fonctionnalité :
Assurez-vous que la fonctionnalité n’existe pas déjà ou n’est pas déjà demandée.
Ouvrez une issue sur GitHub avec le tag « feature request ».
Décrivez la fonctionnalité et les cas d’utilisation.
Si possible, proposez une implémentation.