Contribuer au projet

Cette section explique comment contribuer au projet IziProxy.

Installation de l’environnement de développement

  1. Cloner le dépôt :

git clone https://github.com/votrenom/iziproxy.git
cd iziproxy
  1. Créer et activer un environnement virtuel :

python -m venv venv
source venv/bin/activate  # Sur Windows : venv\Scripts\activate
  1. 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

  1. Créez une branche pour votre contribution :

git checkout -b feature/ma-nouvelle-fonctionnalite
  1. Faites vos modifications et testez-les.

  2. Assurez-vous que tous les tests passent :

pytest
  1. Formatez le code avec Black :

black src tests
  1. Vérifiez la qualité du code avec Flake8 :

flake8 src tests
  1. Committez vos modifications :

git commit -am "Ajout de ma nouvelle fonctionnalité"
  1. Poussez vos modifications vers votre fork :

git push origin feature/ma-nouvelle-fonctionnalite
  1. 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é

  1. Commencez par créer des tests pour votre fonctionnalité.

  2. Implémentez la fonctionnalité.

  3. Documentez la fonctionnalité avec des docstrings et dans la documentation Sphinx.

  4. Ajoutez un exemple d’utilisation dans le répertoire examples/.

  5. Mettez à jour le fichier README.md si nécessaire.

Signaler un bug

Signalez les bugs sur le tracker de problèmes GitHub. Incluez :

  1. La version d’IziProxy que vous utilisez.

  2. Votre environnement Python et système d’exploitation.

  3. Les étapes pour reproduire le bug.

  4. Le comportement attendu et le comportement observé.

  5. Tout message d’erreur ou traceback.

Demande de fonctionnalité

Les demandes de fonctionnalités sont les bienvenues ! Pour proposer une nouvelle fonctionnalité :

  1. Assurez-vous que la fonctionnalité n’existe pas déjà ou n’est pas déjà demandée.

  2. Ouvrez une issue sur GitHub avec le tag « feature request ».

  3. Décrivez la fonctionnalité et les cas d’utilisation.

  4. Si possible, proposez une implémentation.