-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Unbundle mobile tools #1055
Comments
SGTM we used to have it. We could take the opportunity to put that android tooling outside of bazel completely and people would just fetch it when declaring a android_sdk_repository |
LGTM. This is probably the sanest solution of them all. We should also unbundle the tools for other languages. Linux users won't find j2objc and objc very useful. |
@ahumesky is this still in progress (and P1)? |
Yes, for example we've put the tools for android_device and android_instrumentation_test in separate repositories. We're moving the rest of the rules to skylark, and once those are ready we'll move the tooling out of bazel. |
You can already move the tooling out while the rules are still native. @iirina is doing the same currently for the Java rules. |
@iirina is done with the changes for the java tools (next to other improvements) and we are now below 100 MB on all platforms. Looking what to do next to improve binary size, this bug is the next logical step. These are the biggest files in the bazel binary:
Side note: out of the modules file, ~10MB is the So with unbundling the android tools we could save ~28MB of the binary size (~30%). |
What exactly is the dep from |
I filed #7502 as a separate issue for the desktop dependency. |
Taking a stab at this. |
Together with
|
Re-opening this, the CL just unbundled some of the Android tools. The Android rules and tools are not completely out of the Bazel source yet. |
The following Android tools have been removed from the binary:
|
We're about to add another tool for Android builds to do sharded dex compilation, and that depends on having an Android SDK available. If we put it into @bazel_tools, then we'd implicitly require every user of Bazel to also have an Android SDK, whether they work with Android or not.
After talking to @ahumesky and others, it seems to me that the right solution is to unbundle the Android tools - all of them. This requires that all devs who work with Android now also need to depend on the android tools repository (@android_tools?), but that's better than the alternative.
I think we have to do this before we can declare a 1.0, and if we want to ship further improvements to Android builds, sooner rather than later.
The text was updated successfully, but these errors were encountered: