Format de paquetage 2, helpers 2.1, sur le modèle de jwe_ynh. Ce que l'installation fait, dans cet ordre : extraire l'archive, rendre le .env depuis les réponses d'installation, construire l'application web (npm ci, polices, build, prune), monter l'environnement Python, puis remplir la base depuis le corpus de recherche embarqué. Trois choix qui méritent d'être dits : - La base, le cache et l'export vivent dans data_dir, jamais dans le répertoire d'installation. « ynh_setup_source --full_replace » efface celui-ci intégralement à chaque mise à jour : y laisser la base effacerait tout le travail de veille accumulé. Vérifié en simulant la mise à jour — 59 textes, 367 sources et 3 passages survivent à l'effacement. - Un domaine dédié, sans question « path ». Les liens internes sont absolus et SvelteKit demanderait une recompilation avec « paths.base » pour tenir sur un sous-chemin. Mieux vaut une contrainte annoncée qu'un sous-chemin à moitié fonctionnel. - Les identifiants Légifrance sont facultatifs, et les tests s'exécutent sans : cela vérifie au passage le mode dégradé documenté. Le rapport de passage affiche alors « legifrance ignoré — repli sur … », et les deux autres collecteurs détectent quand même les 7 ajouts et les 4 changements de décision. Un minuteur systemd distinct porte le passage de collecte, le helper « ynh_config_add_systemd » ne gérant que l'unité principale. Il est arrêté avant toute mise à jour : un passage qui démarrerait pendant le remplacement des fichiers travaillerait sur un arbre à moitié écrit. Vérifié avant publication, pas après : séquence npm complète depuis l'archive publiée, environnement Python, remplissage, démarrage du service lisant la base de data_dir, origine déduite des en-têtes du proxy, passage en mode dégradé, et simulation d'effacement du répertoire d'installation. shellcheck sans avertissement, TOML valides. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1.6 KiB
Vèy Lalwa tracks French legislation — acts, bills, ordinances, Constitutional Council decisions — through one specific lens: what it changes for the freedoms of individuals, associations and businesses, with a focus on Guadeloupe and the French overseas territories.
Laws restricting or extending freedoms rarely arrive in one piece. They come as an article buried in a simplification act, a rider struck down in a budget act, an implementing decree six months later. Following that takes time few associations and small organisations have.
What it does
- Full-text search with combinable facets — status, topic, Guadeloupe relevance, effect on freedoms — whose state lives in the URL, so it can be shared.
- Detailed records: summary, key points, dated parliamentary history, effects per audience, and the list of sources with verbatim excerpts.
- Calendar of expected decisions, entries into force and parliamentary deadlines.
- Open API, no key required, to reuse the data elsewhere.
What it does not do
- No invented legislative data. Every fact carries its source, date and confidence level; anything unestablished is flagged "to be verified", with the reason shown.
- No legal advice: a quoted text is no substitute for a lawyer.
- No trackers, no analytics cookies, no third-party requests — fonts included.
How it stays current
A pipeline queries Légifrance, the Sénat's list of promulgated acts and the Constitutional Council's docket twice a day. Each source is queried independently: if one is unavailable, the others carry on. A detected status change becomes a dated event in the text's history.