Aller au contenu

Bibliothèque Principale

Contribuer à la Bibliothèque Principale d’Apprise

Section intitulée « Contribuer à la Bibliothèque Principale d’Apprise »

Merci pour votre intérêt à contribuer à Apprise.

Les contributions sont bienvenues pour le code, les corrections de bugs, les améliorations de la CLI, la documentation et l’outillage de déploiement.

Ce dépôt correspond à l’application cœur et à la couche CLI qui constituent le cœur d’Apprise.

Apprise prend en charge Python 3.9 et plus récent. Toutes les contributions doivent rester compatibles avec la version minimale prise en charge, sauf discussion explicite.

Le développement d’Apprise s’appuie sur une petite chaîne d’outils :

  • tox pour l’orchestration des environnements. Il s’appuie sur :
    • pytest pour les tests ;
    • ruff pour le linting et le formatage ;
    • coverage pour les rapports ;
  • pyproject.toml comme définition de projet faisant autorité.

Les environnements de développement locaux doivent refléter le comportement de la CI.

Fenêtre de terminal
git clone git@github.com:caronc/apprise.git
cd apprise

La manière la plus courante d’installer cette dépendance est :

Fenêtre de terminal
pip install tox

Si vous n’utilisez pas d’environnement virtuel ou n’avez pas les droits nécessaires sur la machine, vous devrez peut-être utiliser pip3 ou ajouter le flag --user :

Fenêtre de terminal
pip3 install tox --user

Apprise fonctionne très bien avec un simple environnement bare metal. Les commandes suivantes peuvent vous aider :

Exécuter la CLI apprise depuis le code local avec vos modifications :

Fenêtre de terminal
# Afficher la version et quitter
tox -e apprise -- -v

Utilisez simplement tox -e apprise -- pour obtenir un comportement équivalent à la CLI apprise dans un environnement installé :

Fenêtre de terminal
# Tester un plugin nouveau ou modifié (exemple : foobar://)
tox -e apprise -- -t "mon titre" -b "mon corps" \
"foobar://credentials/direction?options="

Testez votre couverture ajoutée dans tests/ de manière similaire :

Fenêtre de terminal
# 'minimal' installe moins de dépendances, ce qui suffit généralement :
tox -e minimal

Une QA complète peut être lancée en remplaçant minimal par qa.

Fenêtre de terminal
# 'qa' charge toutes les bibliothèques de développement
tox -e qa

Il y a beaucoup de tests ; Apprise vise à maintenir une couverture de 100 %. Pour éviter d’exécuter tout l’ensemble et vous concentrer seulement sur vos nouveaux tests, vous pouvez restreindre l’exécuteur ainsi :

Fenêtre de terminal
# utiliser -k pour filtrer les tests à lancer :
tox -e minimal -- -k "test_foobar"

Gardez un linting et un formatage cohérents d’un environnement contributeur à l’autre :

Fenêtre de terminal
# Lint (appelle ruff en interne)
tox -e lint

Si la commande ci-dessus échoue, vous pouvez utiliser le formatage automatique qui corrige la plupart des erreurs.

Fenêtre de terminal
# Formatage automatique
tox -e format

Les changements touchant au comportement du cœur doivent inclure des tests, sauf justification solide.

Attentes générales :

  • maintenir la couverture de test d’Apprise à 100 % ;
  • faire en sorte que les tests reflètent le comportement réel à l’exécution ;
  • couvrir explicitement les cas limites ;
  • suivre les patterns de test existants ;
  • éviter le bruit de logs dans les tests.

Les tests font partie du contrat public du projet.

Avant de soumettre une pull request :

  • les tests passent localement dans les environnements pertinents ;
  • les vérifications de linting et de formatage passent ;
  • les changements sont bien cadrés et correctement décrits ;
  • les changements de comportement incluent leur justification.

Si vous avez ajouté un nouveau plugin, assurez-vous que :

  • le README.md à la racine du dépôt Apprise est mis à jour si nécessaire ;
  • packaging/redhat/apprise.spec est mis à jour pour refléter le nouveau service ;
  • la section keywords de pyproject.toml inclut le nom du nouveau plugin ;
  • la documentation a été préparée pour le dépôt Apprise Docs (puis reflétée sur https://appriseit.com).

Les pull requests sont évaluées sur la correction, la maintenabilité et l’impact à long terme.

  • Votre changement inclut des tests lorsque c’est pertinent.
  • tox -e qa passe localement.
  • tox -e lint passe localement.
  • Vous exécutez tox -e format lorsque des changements de formatage sont nécessaires.
  • La description de votre pull request explique clairement ce qui a changé et pourquoi.

Apprise est publié sous licence BSD 2-Clause.

Toutes les contributions doivent être compatibles avec cette licence, et les nouveaux fichiers doivent inclure les en-têtes appropriés lorsque cela est requis.

Questions ou commentaires ?

Documentation

Vous avez repéré une faute de frappe ou une erreur ? Signalez-la ou proposez une correction .

Problèmes Techniques

Vous rencontrez un problème avec le code ? Ouvrez un ticket sur GitHub :

Conçu avec amour depuis le Canada