google / ground-android

Ground mobile data collection app for Android
http://groundplatform.org
Apache License 2.0
245 stars 119 forks source link

Force version update when new features added on backend/web app #2769

Open gino-m opened 1 month ago

gino-m commented 1 month ago

Suggested by @cdanielw - we may need to force data collectors to upgrade their app version when a survey is written with an incompatible newer version of the app, for ex when adding a new required task type as in #2469.

@kenstershiro @rawbzz for discussion.

kenstershiro commented 1 month ago

I guess we don't want to follow the normal pattern for force upgrades - forcing all app users to upgrade when a new release with a breaking change comes out - as it would create noise for folks who don't actually use that change. I've not seen examples where a force upgrade happens only if you perform some action, or only for targeted users, but keen to hear advice on what's possible.

gino-m commented 1 month ago

There hasn't been a real need for this yet, but I do think this will come up at some point.

Forcing upgrade on specific actions might be a bit harder to manage, since different versions might get triggered by different actions, leading to complexity and more chances to get things wrong. Perhaps the version upgrade request could per survey (i.e. surveys created with newer incompatible versions require upgrade?)

I'd suggest adding this mechanism for GA launch. We'd need to do a few things if we follow the per-survey model:

Note that this only works for survey metadata, not for changes to LOIs, submissions, and how photos and offline imagery is stored. Open to suggestions.

gino-m commented 1 week ago

Mentioned again by @anandwana001 - there are still older versions in the wild, so crash logs aren't as useful today.

kenstershiro commented 1 week ago
gino-m commented 1 week ago

We discussed at today's PM/UX review. The accepted recommendation is to add a global min. app version to Firebase. When the app comes back online the user will be prompted to upgrade to the latest version to continue using the app.

Updated due to survey-level incompatibilities are out of scope and can be revisited in the future.