Merci @JamesRezo de te pencher sur ce chantier à la fois délicat et nécessaire (et que j’approuve).
Une réorganisation partielle du dépôt prive serait heureuse, en y incorporant les éléments issus de ecrire qui sont manifestement dédiés à l’espace privé ; mais l’on gagnerait aussi probablement (comme tu l’indiques) à déporter certaines fonctionnalités « hybrides » dans un dépôt dédié ; je parle de celles historiquement implémentées pour le privé mais qui ont connu un déploiement de facto côté public.
Bien souvent, il s’agit des fonctionnalités qui touchent au code côté navigateur (ou frontend).
Problématiques récentes abordées ici et là.
Déployer un dépôt par fonctionnalité aurait le mérite d’une organisation claire, mais s’avèrait probablement plus fastidieux niveau maintenance, ce qui contredit l’objectif du ticket initial.
Aussi, que pensez-vous de l’approche suivante :
- Créer un nouveau dépot (dist)
frontend avec une structure « meta »
frontend
├── jquery/
├── insert_head/
├── importmap/
├── ajaxCallback/
├── lib/
├── ...
└── paquet.xml
Chaque dossier ciblant une fonctionnalité JS/Frontend (y compris le code php afférant) dont l’usage n’est pas exclusive à prive.
On pourrait obtenir une arborescence plus digeste au prix que quelques entrées supplémentaires dans la collection de _chemin() :
<procure nom="jquery" />
<chemin path="" />
<chemin path="jquery" />
<chemin path="insert_head" />
<chemin path="importmap" />
...
Il semble pertinent d’y déplacer les libs JS (au moins les plus génériques (Sortable, bootstrap, … )
Il serait ainsi plus simple d’exfiltrer certaines fonctionnalités du core si leur codebase est déjà rassemblé sous un unique dossier (
jquery ).
- La chaîne de dépendance serait la suivante :
ecrire > frontend > prive
mais aussi : ecrire > frontend > dist | plugin-x
Voyez-vous une limitation ou contre-indication en terme d’architecture ?
Chantier d’envergure, mais qui n’implique quasiment pas de rédaction de code… juste de la réorganisation et des tests.
Dernières remarques complémentaires :
- avec une telle organisation, il est sans doute souhaitable (par soucis de cohérence) de renommer le module
presentation.js en prive.js, puisqu’il resterait dans le dépot prive.
- on peut ajouter ce ticket au ticket de roadmap
- @JamesRezo a déjà épuré certaines constantes historiques du système de cache, qu’en est-il de
_JAVASCRIPT et _DIR_JAVASCRIPT, utilisées (à mon corps défendant) dans importmap notamment ?