Merci d'envisager de contribuer aux connecteurs VTOM d'AbsyssLab ! 🎉
Nous accueillons les contributions de la communauté et sommes ravis de vous compter parmi nous.
- Code de conduite
- Comment puis-je contribuer ?
- Configuration du développement
- Standards de code
- Directives de commit
- Processus de Pull Request
- Tests
- Documentation
Ce projet et tous ceux qui y participent sont régis par notre Code de conduite. En participant, vous vous engagez à respecter ce code.
- Utilisez le template de rapport de bug
- Vérifiez si le bug n'a pas déjà été signalé
- Incluez les étapes détaillées pour reproduire
- Fournissez les logs et messages d'erreur
- Précisez votre environnement (version VTOM, OS, etc.)
- Utilisez le template de demande de fonctionnalité
- Décrivez clairement la fonctionnalité et ses bénéfices
- Fournissez des cas d'usage et exemples
- Expliquez pourquoi cette fonctionnalité serait utile pour la majorité des utilisateurs
- Utilisez le template de demande de connecteur
- Décrivez l'outil/plateforme à intégrer
- Expliquez les cas d'usage
- Fournissez des informations sur les APIs disponibles
- Indiquez si vous êtes prêt à contribuer au développement
- Forkez le dépôt
- Créez une branche de fonctionnalité (
git checkout -b feature/fonctionnalite-geniale) - Effectuez vos modifications
- Commitez en suivant nos directives
- Poussez vers votre fork
- Ouvrez une Pull Request
- Python 3.8 ou supérieur
- Visual TOM 6.x installé (pour les tests)
- Git
- Docker (optionnel, pour les tests conteneurisés)
# Cloner le dépôt
git clone https://github.com/AbsyssLab/<nom-connecteur>.git
cd <nom-connecteur>
# Créer l'environnement virtuel
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
# Installer les dépendances
pip install -r requirements.txt
pip install -r requirements-dev.txt # Si disponible
# Lancer les tests
pytest tests/Nous suivons PEP 8 avec quelques règles spécifiques :
- Longueur de ligne : Maximum 120 caractères
- Indentation : 4 espaces (pas de tabulations)
- Guillemets : Utilisez les guillemets doubles pour les chaînes
- Nommage :
snake_casepour les fonctions et variablesPascalCasepour les classesUPPER_CASEpour les constantes
# Formater le code
black .
# Linter le code
flake8 .
pylint **/*.py
# Vérification des types
mypy .
# Vérifications de sécurité
bandit -r .- Ajoutez des docstrings à toutes les fonctions et classes (style Google)
- Commentez la logique complexe
- Mettez à jour le README.md si vous ajoutez de nouvelles fonctionnalités
- Gardez les commentaires concis et significatifs
Exemple :
def execute_job(job_name: str, parameters: dict) -> dict:
"""
Exécute un job VTOM avec les paramètres spécifiés.
Args:
job_name: Nom du job à exécuter
parameters: Dictionnaire des paramètres du job
Returns:
Dictionnaire contenant le statut d'exécution et les logs
Raises:
ConnectionError: Si impossible de se connecter à VTOM
JobExecutionError: Si l'exécution du job échoue
"""
# Implémentation
passNous suivons les Commits Conventionnels :
<type>(<portée>): <sujet>
<corps>
<pied de page>feat: Nouvelle fonctionnalitéfix: Correction de bugdocs: Modifications de la documentationstyle: Changements de style de code (formatage, etc.)refactor: Refactorisation du codeperf: Améliorations de performancetest: Ajout ou mise à jour de testschore: Tâches de maintenanceci: Changements CI/CD
feat(azure): ajout du support des identités managées
Implémente l'authentification via les identités managées Azure
pour une gestion plus sécurisée des credentials.
Closes #123
fix(jenkins): gestion correcte du timeout de connexion
Ajout d'une logique de retry avec backoff exponentiel quand
l'API Jenkins est temporairement indisponible.
Fixes #456
docs: mise à jour des instructions d'installation
Ajout d'une section dépannage pour les problèmes courants.- Mettre à jour la documentation - Assurez-vous que README, CHANGELOG et docs pertinents sont à jour
- Ajouter des tests - Toutes les nouvelles fonctionnalités doivent inclure des tests
- Passer les vérifications CI - Toutes les vérifications automatisées doivent passer
- Demander une revue - Au moins une revue de mainteneur est requise
- Mettre à jour le changelog - Ajoutez vos changements au CHANGELOG.md (si présent)
- Squasher les commits - Considérez squasher les commits avant la fusion
- Le code suit les directives de style du projet
- Auto-revue effectuée
- Commentaires ajoutés pour le code complexe
- Documentation mise à jour
- Tests ajoutés et passants
- Aucun nouveau warning introduit
- Informations sensibles retirées (mots de passe, tokens, etc.)
# Lancer tous les tests
pytest
# Lancer avec couverture
pytest --cov=. --cov-report=html
# Lancer un fichier de test spécifique
pytest tests/test_connector.py
# Lancer avec sortie verbeuse
pytest -v- Placez les tests dans le répertoire
tests/ - Utilisez des noms de test descriptifs :
test_should_connect_successfully_with_valid_credentials - Testez les scénarios de succès et d'échec
- Mocquez les appels API externes
- Visez >80% de couverture de code
Exemple :
import pytest
from unittest.mock import Mock, patch
def test_should_execute_job_successfully():
"""Test l'exécution réussie d'un job."""
# Arrange
connector = VTOMConnector(host="localhost")
# Act
result = connector.execute_job("test_job", {"param": "valeur"})
# Assert
assert result["status"] == "success"
assert "job_id" in resultTous les README de connecteurs doivent inclure :
- Description - Ce que fait le connecteur
- Prérequis - Exigences et dépendances
- Installation - Configuration étape par étape
- Configuration - Toutes les options de configuration
- Utilisation - Exemples et cas d'usage
- Dépannage - Problèmes courants et solutions
- Contribution - Lien vers ce guide
- Licence - Apache License 2.0
- Écrivez du code auto-documenté quand possible
- Ajoutez des commentaires pour la logique non évidente
- Gardez les commentaires à jour avec les changements de code
- Évitez les commentaires redondants
Nous utilisons le Versioning Sémantique :
- MAJOR : Changements incompatibles
- MINOR : Nouvelles fonctionnalités (rétrocompatibles)
- PATCH : Corrections de bugs (rétrocompatibles)
Exemple : v1.2.3
- 📖 Lisez le Guide de support
- 💬 Rejoignez les Discussions
- 🐛 Signalez les problèmes via les templates d'issues
- 📧 Contactez les mainteneurs pour les sujets sensibles
Vous cherchez par où commencer ? Consultez les issues étiquetées :
good first issue- Parfait pour les nouveaux venushelp wanted- Nous avons besoin d'aide de la communautédocumentation- Améliorez notre documentation
Les contributeurs seront :
- Listés dans CONTRIBUTORS.md (si présent)
- Mentionnés dans les notes de version
- Crédités dans l'historique des commits
En contribuant, vous acceptez que vos contributions soient sous licence Apache License 2.0.
Merci de contribuer à AbsyssLab ! 🙏