Projet

Général

Profil

Demande #6572

Mis à jour par Frédéric Henry il y a 4 jours

Ceci est une requête de fusion du dépôt "fhenry2/bd-chapril":https://forge.april.org/fhenry2/bd-chapril vers le dépôt "gee/bd-chapril":https://forge.april.org/gee/bd-chapril entre les branches <code>main</code>. Une branche <code>legacy</code> est à envisager pour garder une trace de la plus ancienne version. 

 h1. Problèmes 

 h2. Erreur de cache 

 Une obsolescence d’une partie du code m’a motivé à mettre à niveau la gestion du cache dans l’application. Cette obsolescence concerne la suppression d’une ancienne API Web ApplicationCache[1] dédiée au cache. 
 Le symptôme est une erreur via la console JS lors du démarrage du site https://bd.chapril.org/ : <code>TypeError: webappCache is undefined</code>. L’origine est le caractère indéfini de <code class=javascript>window.applicationCache</code> dans le fichier <code>bdchapril.js</code> responsable du cache[2]. 

 h2. Licence et droits de copie manquants 

 Quels sont les droits sur ce code ? Si c’est bien un logiciel libre mieux vaut préciser explicitement par une licence. Les différentes dépendances peuvent aussi octroyer des droits distincts. 

 h1. Solutions 

 h2. _Service Worker_ pour le cache 

 Pour gérer à part le cache et permettre l’accès à l’application même en cas de déconnexion je propose un _Service Worker[3]_. Ce dernier est un fichier <code>sw.js</code> en charge du cache via un fil de processus[4] annexe. 

 h2. Licence libre 

 Pour plus de clarté je propose la GNU GPLv3 comme licence tout en citant les droits des autres applications intégrées dans <code>COPYRIGHT.md</code>. 

 h2. Contribution 

 Pour faciliter la contribution au projet je propose deux outils pour développer l’application : 
 * Lite Server, un serveur local installé via Node, d’où la présence de <code>package.json</code> ; 
 * Static Web Server, un serveur alternatif léger, d’où la présence du répertoire <code>sws/</code>. 

 h2. Divers 

 Quelques ajouts en plus : 
 * Une _favicon_ ; 
 * Un manifeste ; 
 * Des répertoires pour trier les fichiers. 

 fn1. Trace de l’API : https://web.dev/articles/appcache-beginner?hl=en 

 fn2. Fichier de cache : https://forge.april.org/gee/bd-chapril/src/commit/ec57a621088dfe9a4324eb71f5fa220c4b5e0ca2/bdchapril.js 

 fn3. _Service Workers_ : https://developer.mozilla.org/fr/docs/Web/API/Service_Worker_API/Using_Service_Workers 

 fn4. Nommé couramment _thread_.

Retour