Mise à jour forcée de Cesium (en douceur)

Les testeurs testant Cesium2, si tant est qu’ils testent vraiment, testent forcément sur un appid de test. Tester sans test, c’est un non-test, et tester un appid non testé, c’est tester quelque chose qui n’a pas été testé. Le test doit être testé, sinon le test n’est pas un test, et tout appid de test non testé n’est pas un appid de test valide pour le test.

J’espère que c’est plus clair.

C’est quoi un appid ?

C’est l’identifiant unique correspondant à une app Android/iOS.
Aussi appelé package name ou bundle ID.

Généralement un nom de domaine inversé, pour Ğecko c’est fr.axiom-team.gecko de mémoire.
Cesium je ne sais pas je suis pas sur pc, à check dans le code ou en debug sur mobile.

Edit: pour Cesium c’est fr.duniter.cesium

En gardant le même appid, le système va considérer que c’est la même app, et autoriser la mise à jour en écrasant l’ancienne étant donné que le numéro de version sera supérieur.

Une bonne pratique est d’avoir des flavors, c’est à dire des dérivations de l’appID genre fr.duniter.cesium.gdev par exemple.

2 Likes

Nouvelle MR à relire: feat(migration): Implement forced update on v2s migration (!669) · Merge requests · clients / Cesium-grp / Cesium · GitLab

Traduis dans toutes les langues proposés par l’app.

Une route primaire ainsi qu’une route de backup ont été implémentés:

const primaryUrl = 'https://v2s-migration-state.axiom-team.fr';
const backupUrl = 'https://v2s-migration-state.duniter.org';

Le backup n’existe pas encore, je vous laisse la faire.

Ca check si on est ni sur iOS ni Android alors on ne fait rien, on continue normalement.
Ca revoie soit vers play store soit vers app store en fonction de android ou iOS.

Il faudrait changer les liens en savoir plus en fonction de la langue, là ça renvoie toujours sur la page fr conformément aux specs.

Je laisse @kimamila relire, merger et déployer dès que possible, le plus tôt étant le mieux pour s’assurer qu’un max de user soit couvert.

3 Likes

J’ai essayé d’utiliser les redirections web de gandi (http uniquement), ça a l’air de fonctionner à peu près :

# redirige vers http://git.duniter.org/nodes/networks/-/raw/master/g1.json
$ curl --location http://v2s-migration-state.duniter.org
{"active": false}%   

Pourquoi est-ce que ce n’est pas valide pour les extensions navigateur ?

Je pense qu’il faudra aussi publier un message d’annonce de version sur le forum avec un changelog qui explique la nouvelle fonctionnalité : “être prévenu de la migration” ou “évite l’utilisation par erreur de la Ğ1 Duniter v1 après la migration Duniter v2”.

2 Likes

Attention j’ai mis migration en clé et non active.

Oui tu as raison il faut que je fasse sauter le check isandroid/iOS en fait, et que je renvoie vers cesium.app en dernier cas.

1 Like

Fait. J’ai gardé “active” et “migration”. Migration dira que la migration est en cours, et donc qu’il faut arrêter d’utiliser la v1. Active dira que la migration est validée et que la v2 est prête à être utilisée. Les deux devraient être mis à true dans un intervalle d’une heure maxi si tout va bien.

$ curl --location http://v2s-migration-state.duniter.org
{ "migration": false, "active": false }
2 Likes

J’ai traité les cas web/desktop et amélioré un peu la gestion des deeplink pour les stores.
La MR est ok pour moi @kimamila

1 Like