Contribuer
Aidez à bâtir MapleStats
MapleStats est un logiciel libre qui grandit une source à la fois. Vous pouvez aider sans écrire une ligne de code : signaler un chiffre erroné, proposer une source ou raconter comment vous l'avez utilisé. Si vous écrivez du code, cette page décrit tout le processus, du premier ticket jusqu'au site en ligne.
Façons d'aider
Signaler un chiffre erroné ou manquant
Ouvrez un ticket avec la question posée, l'appel d'outil et l'URL de la source indiquée dans la provenance du résultat. Un chiffre erroné est le signalement le plus utile qui soit.
Proposer une source
Nommez l'organisme ou le portail et indiquez où se trouvent ses données. La feuille de route énumère chaque source examinée jusqu'ici, y compris celles qui n'ont pas pu être ajoutées, et pourquoi.
Partager une étude de cas
Vous avez utilisé MapleStats pour un vrai travail ? Ouvrez un ticket avec la question, ce que l'agent a trouvé et les appels qu'il a faits. Les meilleurs exemples rejoignent les études de cas.
Les francophones aident aussi : chaque outil porte des mots-clés de recherche en français et chaque page est bilingue. Si une phrase sonne comme une traduction, ouvrez un ticket ou proposez une correction.
Le processus pour le code
01
Ouvrir d'abord un ticket
Dites ce que vous voulez ajouter ou corriger avant d'écrire du code, pour que personne ne fasse le travail en double et que l'approche soit convenue tôt. Pour une nouvelle source, donnez le lien vers la documentation de son API ou sa page de données.
02
Préparer le poste et lire AGENTS.md
Faites une bifurcation (fork) du dépôt, clonez-le et installez-le avec uv. Lisez ensuite AGENTS.md : c'est le guide de travail des personnes comme des agents. Il explique la structure d'un module, le contrat de réponse que suit chaque outil et trois lignes qui semblent superflues mais ne le sont pas.
git clone https://github.com/dsanchezp18/maplestats-mcp.git
cd maplestats-mcp
uv sync
03
Travailler avec la vraie API
Une nouvelle source commence par une copie de modules/_example/ : des réponses typées qui portent leur provenance, des erreurs levées plutôt que renvoyées, et une docstring avec des mots-clés de recherche en anglais et en français. Avant de considérer un client comme terminé, appelez chacune de ses fonctions sur l'API réelle, avec des arguments réalistes. Les tests simulés prouvent seulement que le code fait ce que vous pensiez que l'API fait ; un audit de ce projet qui a appelé chaque outil en direct a trouvé neuf bogues que les simulations avaient manqués.
04
Le tester et le répertorier
Ajoutez des tests unitaires simulés pour le client (avec pytest-httpx), qui couvrent les particularités de la vraie API, et une étape de test en direct pour chaque outil dans scripts/smoke_test_modules.py. Ajoutez ensuite le module à SOURCES dans scripts/build_site.py, pour que le site puisse le nommer. Un test échoue si l'un ou l'autre manque.
05
Lancer les vérifications
Les quatre mêmes vérifications que l'intégration continue. Les quatre doivent réussir avant l'examen d'une demande de fusion.
uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -q
06
Ouvrir une demande de fusion
Décrivez ce qui a changé et comment vous l'avez vérifié auprès de la source en direct. L'intégration continue lance les vérifications sous Python 3.12 et 3.13, et une personne responsable examine le changement. Les demandes courtes et ciblées sont examinées et fusionnées plus vite.
07
Après la fusion
Une fois la fusion faite dans la branche principale, l'intégration continue relance les vérifications et, si elles réussissent, le site se reconstruit et se redéploie : un nouvel outil apparaît dans la page Outils et dans la recherche. Les données des études de cas, elles, ne changent que lorsque quelqu'un lance scripts/capture_cases.py et valide les nouveaux enregistrements. Chaque lundi, une tâche planifiée lance les tests en direct sur les vraies API, pour repérer un changement en amont même quand le code n'a pas bougé.
Avec un agent de programmation
Le dépôt est conçu pour les agents de programmation. Dirigez d'abord le vôtre vers AGENTS.md (le fichier CLAUDE.md du dépôt y renvoie aussi) ; il suivra le même processus et lancera les mêmes vérifications.
Lis AGENTS.md dans ce dépôt, puis ajoute un module pour [la source] en le suivant.Règles de base
- Les contributions sont publiées sous la licence MIT du projet.
- Les données restent chez leurs éditeurs. MapleStats centralise l'interface, pas les données : ne versez pas de copies des données d'une source dans le dépôt.
- Aucune clé d'API ni aucun identifiant dans le code. Toutes les sources actuelles fonctionnent sans.
- L'anglais et le français ensemble : un outil sans mots-clés français est introuvable par une requête en français.