-
Notifications
You must be signed in to change notification settings - Fork 527
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
[Feature Request]: Target SDK 34 #5535
Comments
Known Problems
Require Additional Verification
Interest for Future Work
Behavior changes: all appshttps://developer.android.com/about/versions/14/behavior-changes-all contains the high-level behavior changes in SDK 34. Items of note:
Behavior changes: Apps targeting Android 14 or higherhttps://developer.android.com/about/versions/14/behavior-changes-14 contains the high-level behavior changes are apps targetting Android 14 or higher. Items of note:
|
Thanks @theMr17! My follow-up thoughts on your findings + questions:
All three of these could be issues if one of our (now quite old) third-party dependencies isn't set up to handle these new restrictions correctly (Firebase components especially come to mind). I think verifying that the app doesn't crash when played through & that there aren't noteworthy logcat errors on a build targeting SDK 34 should be sufficient. We can't actually verify logging behavior itself until #4751 is addressed (which is outside the scope of this issue).
I agree that this should be tested as part of the above.
What APIs exactly are affected here? We use I'm wondering if this actually has to do with Android app modules rather than data files. Was there additional documentation provided for this new requirement?
If this behaves like it does on iOS (which I'm familiar with), then we actually should test this with the app's current profile selection as part of the test above to ensure that it behaves correctly. If it does, then I think there's no additional work needed (including in the future since we've effectively integrated with the feature already). @theMr17 could you PTAL and let me know your thoughts, and provide the additional context as requested? Separately, do you have bandwidth to perform the actual build and test on a local version of the app targeting SDK 34 to verify the above? It's fine if you use an emulator to verify, though it's important to test with a Proguard-optimized version of the app (e.g. |
…versions (#5538) ## Explanation Fixes #5473 This PR introduces a new wiki page that describes the process by which we can carefully upgrade the app to a newer compile/target SDK version (with a specific emphasis on the target SDK version). This is largely meant to capture past processes we have followed since those weren't documented in an easily reproducible way. The intent is for this now-documented process to be trialed by upgrading the app to SDK 34 in order to address #5535 (though that technically means that part (1) of the documented process has already been completed). This PR does not: - Address exactly when the compile version should be updated, except when required by the target SDK version. It's expected that the team will perform an out-of-band analysis for cases when the compile SDK actually needs to be upgraded sooner than the target SDK. - Specify a strongly enforced cadence for upgrading the target SDK since the Google Play Console and Google Play app policy seems to already perform this function, though it does add a recommendation for checking for updates periodically (July/August every year). ## Essential Checklist - [x] The PR title and explanation each start with "Fix #bugnum: " (If this PR fixes part of an issue, prefix the title with "Fix part of #bugnum: ...".) - [x] Any changes to [scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets) files have their rationale included in the PR explanation. - [x] The PR follows the [style guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide). - [x] The PR does not contain any unnecessary code changes from Android Studio ([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)). - [x] The PR is made from a branch that's **not** called "develop" and is up-to-date with "develop". - [x] The PR is **assigned** to the appropriate reviewers ([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)). ## For UI-specific PRs only N/A -- This is introducing a new wiki page and doesn't change the app itself.
Thanks @BenHenning for following up on this! Here’s an update on the testing and issue tracking:
Sounds good. I will create an issue to track this.
It seems this is more about dynamic code loading than asset files, so we shouldn’t need to address this anytime soon. Reference: Dynamic Code Loading Changes in Android 14.
The app's current profile image selection works correctly without any required changes, as we select the image by launching a gallery intent. The permission changes don’t affect us.
Yes, I can build the |
Tested profile creation/deletion and login. No issues found, works fine. |
… SDK versions (oppia#5538) ## Explanation Fixes oppia#5473 This PR introduces a new wiki page that describes the process by which we can carefully upgrade the app to a newer compile/target SDK version (with a specific emphasis on the target SDK version). This is largely meant to capture past processes we have followed since those weren't documented in an easily reproducible way. The intent is for this now-documented process to be trialed by upgrading the app to SDK 34 in order to address oppia#5535 (though that technically means that part (1) of the documented process has already been completed). This PR does not: - Address exactly when the compile version should be updated, except when required by the target SDK version. It's expected that the team will perform an out-of-band analysis for cases when the compile SDK actually needs to be upgraded sooner than the target SDK. - Specify a strongly enforced cadence for upgrading the target SDK since the Google Play Console and Google Play app policy seems to already perform this function, though it does add a recommendation for checking for updates periodically (July/August every year). ## Essential Checklist - [x] The PR title and explanation each start with "Fix #bugnum: " (If this PR fixes part of an issue, prefix the title with "Fix part of #bugnum: ...".) - [x] Any changes to [scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets) files have their rationale included in the PR explanation. - [x] The PR follows the [style guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide). - [x] The PR does not contain any unnecessary code changes from Android Studio ([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)). - [x] The PR is made from a branch that's **not** called "develop" and is up-to-date with "develop". - [x] The PR is **assigned** to the appropriate reviewers ([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)). ## For UI-specific PRs only N/A -- This is introducing a new wiki page and doesn't change the app itself.
Tested, no issues found. |
Thanks @theMr17! In that case, could you perhaps send your draft commit that you used to verify as a PR for performing the upgrade? It sounds like all we need to do is check that in in order to complete the SDK 34 work (and file the issue you mentioned above). Edit: Also, just to check: did you test the beta build on an SDK 34 device/emulator? |
Is your feature request related to a problem? Please describe.
Per https://developer.android.com/google/play/requirements/target-sdk and https://apilevels.com/ apps are required to target at least SDK 34 by 31 August 2024 in order to continue deploying using the Play Store.
Since Oppia Android is targeting SDK 33, we are blocked from releasing new versions of the app.
Describe the solution you'd like
Once #5473 is addressed, we should follow the process and document:
Then, those changes will need to be implemented and verified, then the app updated to SDK 34 and manually tested.
Describe alternatives you've considered
The upgrade to SDK 34 could happen directly, but the audit is very important to ensure no new Android functionality breaks the app (which is something I've seen happen before on other apps), and it makes sense to finish #5473 first to ensure the process of doing this is written down since we essentially need to upgrade SDK versions every year.
Additional context
#5137 demonstrates the process that was conducted for upgrading the app to target SDK 33.
The text was updated successfully, but these errors were encountered: