Contexte
Plugin.cs utilise PluginPageInfo.Name = "VirtualLibConfigScript<N>" comme mécanisme de cache-busting pour configjs.js (le nom de ressource doit changer pour forcer le navigateur à re-fetcher le script après une mise à jour).
Problème
Ce numéro doit être incrémenté manuellement (Plugin.cs et config.html, synchronisés) à chaque modification de configjs.js. Constaté deux fois cette session (une fois oublié depuis plusieurs releases avant v1.9.0, une fois oublié puis rattrapé pendant le développement de #44) : un oubli entraîne un bug utilisateur difficile à diagnostiquer — un navigateur avec un script en cache continue de servir une version obsolète du JS après une mise à jour du plugin, jusqu'à un reload complet forcé.
À faire
Remplacer la discipline manuelle par un mécanisme automatique, par exemple :
- Hash du contenu de
configjs.js (calculé au build ou à l'exécution) utilisé comme suffixe du nom de ressource
- Ou dérivé de
VirtualLib.csproj <Version> (déjà bumpé à chaque release, donc changerait automatiquement le nom de ressource sans étape manuelle supplémentaire)
Objectif : qu'un changement de configjs.js invalide toujours le cache navigateur sans dépendre d'un développeur qui s'en souvient.
Contexte
Plugin.csutilisePluginPageInfo.Name = "VirtualLibConfigScript<N>"comme mécanisme de cache-busting pourconfigjs.js(le nom de ressource doit changer pour forcer le navigateur à re-fetcher le script après une mise à jour).Problème
Ce numéro doit être incrémenté manuellement (
Plugin.csetconfig.html, synchronisés) à chaque modification deconfigjs.js. Constaté deux fois cette session (une fois oublié depuis plusieurs releases avant v1.9.0, une fois oublié puis rattrapé pendant le développement de #44) : un oubli entraîne un bug utilisateur difficile à diagnostiquer — un navigateur avec un script en cache continue de servir une version obsolète du JS après une mise à jour du plugin, jusqu'à un reload complet forcé.À faire
Remplacer la discipline manuelle par un mécanisme automatique, par exemple :
configjs.js(calculé au build ou à l'exécution) utilisé comme suffixe du nom de ressourceVirtualLib.csproj<Version>(déjà bumpé à chaque release, donc changerait automatiquement le nom de ressource sans étape manuelle supplémentaire)Objectif : qu'un changement de
configjs.jsinvalide toujours le cache navigateur sans dépendre d'un développeur qui s'en souvient.