
Contribuer au WME Switzerland Helper
Le WME Switzerland Helper est développé en équipe, en open source. Cette page décrit comment mettre en place un environnement de développement local et soumettre une contribution.
En résumé
On clone le dépôt, on lance npm run watch, on charge le build local dans Tampermonkey, on code sur une branche, puis on ouvre une Pull Request. Jamais de push direct sur main.
Rejoindre l'organisation
Pour obtenir un accès en écriture au dépôt ou rejoindre l'organisation Waze-Dev-CH, présentez-vous aux mainteneurs sur le Discord de la communauté (zone DACH) : c'est le canal privilégié pour en discuter. Pour une contribution ponctuelle, aucun accès n'est nécessaire : une Pull Request depuis un fork suffit.
Avant de commencer
La feuille de route passe par les GitHub Issues. Lire les issues ouvertes avant de démarrer pour éviter les doublons, et vérifier qu'une issue ne couvre pas déjà votre idée. Pour un bug, ouvrir une issue avec les étapes de reproduction et des captures du WME.
Prérequis
- Node.js et npm (installés ensemble)
- git et un compte GitHub
- Tampermonkey dans votre navigateur
- Cloner le dépôt :
git clone https://github.com/Waze-Dev-CH/WME-Switzerland-Helper.git
cd WME-Switzerland-Helper
npm installDev container
Le dépôt fournit un .devcontainer (VS Code / GitHub Codespaces) avec l'environnement préconfiguré, si vous préférez ne rien installer localement.
Environnement de développement
Lancer le mode watch : il recompile le script à chaque modification (Rollup), régénère les traductions (i18next) et applique Prettier + ESLint automatiquement.
npm run watchLe build local est écrit dans .out/main.user.js. Pour le charger dans le WME :
- Dans Tampermonkey, créer un nouveau script et y coller le contenu de
header-dev.js. - Adapter la ligne
@require file://.../.out/main.user.jsau chemin absolu de votre clone. - Dans les réglages de l'extension Tampermonkey (côté navigateur, pas dans l'éditeur du script), activer « Local file access » (voir la FAQ Tampermonkey).
- Ouvrir le Waze Map Editor et recharger la page à chaque rebuild.
Note
header-dev.js et header.js doivent rester identiques, à l'exception du champ @require (fichier local en dev, URL de release en production).
Tests
Les tests tournent avec Vitest, les fichiers *.test.ts vivent à côté du code qu'ils couvrent dans src/.
npm test # une passe
npm run test:watch # en continuFlux de contribution
Le projet fonctionne par Pull Request ; main est protégée.
Partir d'un
mainà jour, puis créer une branche :bashgit checkout main && git pull git checkout -b feat/ma-fonctionnaliteCoder en suivant les conventions de code : conformité au SDK WME et code pensé pour la relecture.
Commits en Conventional Commits (
feat:,fix:,docs:,chore:…).
Checklist avant d'ouvrir la PR
npm testau vert etnpm run buildsans erreur- eslint propre (
npx eslint ., aussi lancé parnpm run watch) - Smoke test dans le WME : charger le script, activer chaque couche, vérifier le rendu
- Chaînes i18n ajoutées pour les 4 langues dans
locales/<lang>/common.json - Entrée Changelog dans tous les README (voir conventions)
- Pousser la branche et ouvrir une Pull Request vers
main, puis assigner un mainteneur comme reviewer. - La CI GitHub Actions (
release.yml) valide la PR. Répondre aux commentaires en poussant des correctifs sur la même branche ; noter les résultats du smoke test dans la description (pas de couverture automatique). Un mainteneur approuve et merge.
Important
- Jamais de push direct sur
main, tout passe par une PR relue. - Ne pas créer de tag ni de release soi-même : c'est réservé aux mainteneurs.
- Contributeur externe (sans droit d'écriture sur l'org) ? Forker le dépôt et ouvrir la PR depuis votre fork.
Après le merge
Une release est produite par un mainteneur : npm run release incrémente la version (package.json → header.js) et régénère le build publié dans releases/, que les utilisateurs installent via Tampermonkey.
Sources
- Dépôt : https://github.com/Waze-Dev-CH/WME-Switzerland-Helper
- README et guide d'installation : https://github.com/Waze-Dev-CH/WME-Switzerland-Helper#readme
- Documentation du SDK WME : https://www.waze.com/editor/sdk/index.html
