-
Notifications
You must be signed in to change notification settings - Fork 27
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
build(deps): bump ndk version to r24 #180
Conversation
Total failure 😅 - will investigate locally as time permits. Not super high priority just wanted to see if it could go in |
|
Oh this is gonna be a rabbit hole - I didn't realize how much infra was contained in the NDK as I'd never really used it before. Hooboy. So, if you go to r23:
No time to play with this yet |
- Update the backend protobuf generation to match the refactoring done on the desktop code recently. This involved switching from the Python-based script to a new one in Rust. Comments from the proto files are now included in the generated backend bindings. Also: - Rumo contributed changes to the upstream Chrono crate which make it work properly on Android, and these changes have been merged in, so AnkiDroid no longer needs to pin an older version. - Update to latest NDK, as latest Rust requires it (closes ankidroid#180). - Update to latest Rust - Add a workaround for a crashing bug in the sim caused by the above. Needs testing to make sure building/running on macOS still works. - Switch from protobuf to protobuf-lite, which is what Google recommend for use on Android. - Add a script to make it easier to reformat Rust code when it fails checks.
- Update the backend protobuf generation to match the refactoring done on the desktop code recently. This involved switching from the Python-based script to a new one in Rust. Comments from the proto files are now included in the generated backend bindings. - Switch from protobuf to protobuf-lite, which is what Google recommend for use on Android. - Recent desktop changes introduce a protobuf construct that protobuf-lite doesn't support, so the offending file needed to be removed as part of the build. This was easier to do by directly invoking protobuf, instead of relying on the Gradle protobuf plugin. As a bonus, this should also solve the protobuf-sources-are-missing-from-bundle issue. (file removal is no longer required due to a refactor). - Update Rust deps. is_terminal was failing to build on Windows, and is no longer required after updating to the latest android_logger - Rumo contributed changes to the upstream Chrono crate which make it work properly on Android, and these changes have been merged in, so AnkiDroid no longer needs to pin an older version. - Update to latest NDK, as latest Rust requires it (closes ankidroid#180). - Update to latest Rust - Add a script to make it easier to reformat Rust code when it fails checks.
- Update the backend protobuf generation to match the refactoring done on the desktop code recently. This involved switching from the Python-based script to a new one in Rust. Comments from the proto files are now included in the generated backend bindings. - Switch from protobuf to protobuf-lite, which is what Google recommend for use on Android. - Recent desktop changes introduce a protobuf construct that protobuf-lite doesn't support, so the offending file needed to be removed as part of the build. This was easier to do by directly invoking protobuf, instead of relying on the Gradle protobuf plugin. As a bonus, this should also solve the protobuf-sources-are-missing-from-bundle issue. (file removal is no longer required due to a refactor). - Update Rust deps. is_terminal was failing to build on Windows, and is no longer required after updating to the latest android_logger - Rumo contributed changes to the upstream Chrono crate which make it work properly on Android, and these changes have been merged in, so AnkiDroid no longer needs to pin an older version. - Update to latest NDK, as latest Rust requires it (closes #180). - Update to latest Rust - Add a script to make it easier to reformat Rust code when it fails checks.
This is the current latest stable version. r23 is LTS, r25 is at beta2
Related #179
This is speculative. It might work. It might not. I'm going to trust CI on it though after the work I've put in on CI just now...
I won't be surprised if this also needs some other chunks of toolchain updated like perhaps build tools, or if it flags new warnings in code and generates some set-warnings-as-errors / fix warnings/errors work. We'll see...