Migrate all providers to Starlark
Closed this issue · 4 comments
So far we've Starlarkified these providers:
- ApkInfo
- AndroidInstrumentationInfo
- AndroidNativeLibsInfo
- AndroidBinaryNativeLibsInfo
- AndroidLibraryAarInfo
- AndroidIdlInfo
- AndroidPreDexJarInfo
- AndroidCcLinkParamsInfo
- DataBindingV2Info
- AndroidLibraryResourceClassJarProvider
- ProguardMappingInfo
- BaselineProfileProvider
- AndroidDexInfo
- AndroidFeatureFlagSet
Deleted these unused providers:
- AndroidApplicationResourceInfo
- AndroidProguardInfo
- AndroidBinaryData
- AndroidNeverLinkLibrariesProvider
- AndroidOptimizedJarInfo
- AndroidOptimizationInfo
The remaining providers will take a little more time due to internal migrations:
- AndroidSdkInfo
- AndroidResourcesInfo
- AndroidManifestInfo
- AndroidAssetsInfo
- AndroidIdeInfo
These last 5 providers are proving to be somewhat tricky to remove, but hopefully next week they'll be migrated. Also AndroidResourcesInfo, AndroidManifestInfo, AndroidAssetsInfo will be deleted and replaced with StarlarkAndroidResourcesInfo which contain the same information.
Additionally, I'd forgotten about ProguardSpecInfo because it was moved to the Java rules years ago (since java_library needed to be able to contribute proguard specs). We're working on moving that as well. I've also submitted a separate change to "unguard" ProguardSpecInfo behind --experimental_legacy_google_api
in case something goes wrong in migrating ProguardSpecInfo, and I'll cherrypick that in bazel 7.4.0
All the remaining Android providers have been migrated to Starlark, and the native providers (and most of the remaining Android things in Bazel) have been removed in bazelbuild/bazel@32264b0
ProguardspecInfo
will take more time because it's in the Java rules, but --experimental_legacy_google_api
should not be needed with Bazel 7.4.
A Starlark version of ProguardSpecInfo
is now available in rules_java: bazelbuild/rules_java@f552441, so we'll figure out how to migrate to that. In the meantime as above, with bazel 7.4 --experimental_legacy_google_api
is no longer needed.