Release new dashboard versions

From Wiquipedia
Jump to navigation Jump to search

Scenario:

  • abilitiamo su app center la 1.5.9 con l'obiettivo di far arrivare il parcheggiatore alla 2.1.8
  • un parcheggiatore non la aggiorna (perchè magari non riesce a essere raggiunto dal customer care)
  • più avanti rilasciamo la 2.1.9


Cosa succede?

il parcheggiatore viene notificato direttamente della 2.1.9 e se lui ha ancora la 1.5.5 gli “crasha”. Proprio per questo motivo finchè tutti non aggiornano bisogna fare in modo che ogni nuova build successiva alla 1.5.9 abbia dei puntatori rinfrescati ai numeri di versione e all’apk sulla cdn.

In pratica l’app fa due controlli: un controllo sulla versione e un controllo su un flag (locale) di migrazione.

  • quando l’utente installa dalla 1.5.5 a una versione qualsiasi successiva quel flag è a false. Il check di questo flag è incrociato con un controllo sulla versione. Se il flag è a false viene mostrata la schermata per scaricare l’apk dalla cdn.
  • se l’utente installa viene fatto un check sulla versione corrente e su quel flag. Se il flag è già settato vuol dire che l’utente ha già migrato a una versione corretta altrimenti viene riproposta la schermata per scaricare l’apk. A quel punto però la cdn dovrà puntare a un apk che abbia una versioen successiva

Per tornare all’esempio, se noi pubblichiamo la 1.5.9, sulla cdn viene caricata la versione 2.1.7.

Ipotizzando che dopo che buona parte degli utenti ha scaricato la 2.1.7 ci sia chi ancora non l’ha scaricata ma che nel frattempo venga rilasciata la 2.1.8 su appcenter quello che deve succedere è che:

  1. quando si rilascia la 2.1.8 deve avere dentro il puntatore alla versione corretta (che sarà non più 1.5.9 ma 2.1.8)
  2. nella cdn deve essere caricata una versione successiva 2.1.9 (che differisce dalla 2.1.8 solo per numero di versione)

quindi l’utente che salta direttamente dalla 1.5.5 alla 2.1.8 vedrà la schermata di migrazione e alla fine del giro si troverà installata la 2.1.9Se si deve fare un rilascio ulteriore su appcenter si salta direttamente dalla 2.1.8 alla 2.2.0 (perchè la 2.1.9 è sulla cdn, e se ancora non hanno migrato tutti sulla cdn va caricata un ulteriore build con versione 2.2.1). Questa cosa va gestita per ogni rilascio che viene fatto fino a che tutti non avranno migrato sulla nuova, dopo di che non sarà più necessaria.

il flag di migrazione si è reso necessario proprio per gestire questa casistica. In ogni caso non dovrebbero esserci problemi, possiamo fare magari anche delle prove per verificare che il giro torni sempre, alla fine è una cosa di cui ci si deve ricordare in fase di build ma è già gestita.