Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
gino-m opened this issue Sep 25, 2024 · 5 comments
Open

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

gino-m opened this issue Sep 25, 2024 · 5 comments
Assignees
Labels
type: fr Request for new feature
Milestone

Comments

@gino-m
Copy link
Collaborator

gino-m commented Sep 25, 2024

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
Copy link
Collaborator

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
Copy link
Collaborator Author

gino-m commented Oct 4, 2024

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:

  • Add the web app version to the survey and jobs when writing them to the db.
  • No more partial updates to survey from the web app; the web app loads and rewrites the whole survey definition using the latest format on "Publish". (this may have already been done recently - @rfontanarosa to confirm)
  • The Android app knows which versions of the web app it's compatible with, and requests and upgrade when opening an incompatible survey.

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 gino-m added the for pm/ux review Product decision needed label Nov 4, 2024
@gino-m
Copy link
Collaborator Author

gino-m commented Nov 4, 2024

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

@kenstershiro kenstershiro moved this to Todo in Ground Nov 6, 2024
@kenstershiro kenstershiro added this to the GA release milestone Nov 6, 2024
@kenstershiro
Copy link
Collaborator

kenstershiro commented Nov 8, 2024

  • Consider edge case of someone being offline for a long time
  • Min required version will be checked when offline, requiring update before usage
  • Req to avoid breaking surveys (all changes backwards compatible) still remains
  • This task should be for releasing fixes of breaking changes, not survey specific

@gino-m gino-m added type: fr Request for new feature ux needed Product input from PM/UX needed and removed for pm/ux review Product decision needed labels Nov 8, 2024
@gino-m
Copy link
Collaborator Author

gino-m commented Nov 8, 2024

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.

@gino-m gino-m removed the ux needed Product input from PM/UX needed label Dec 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: fr Request for new feature
Projects
Status: Todo
Development

No branches or pull requests

2 participants