bazelbuild/rules_android

Migrate all providers to Starlark

Closed this issue · 4 comments

Migrate all providers to Starlark

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.