I will migrate the native rules, apple rules, swift rules, and tulsi as described above. Users also need to migrate any Starlark rules they own that use ObjcProvider for compile information. We will provide two incompatible flags to aid the migration:
--incompatible_objc_compile_info_migration: This flag controls whether native rules will use compile info from ObjcProvider or CcInfo. If the flag is false, bazel will get its compile info from ObjcProvider (pre-migration behavior). If the flag is true, bazel will get its compile info from CcInfo (post-migration behavior).
Tentative time-frame: available and default false in 3.0, default true the next release (i.e. 3.1), removed the following release (i.e. 3.2).
--incompatible_objc_provider_remove_compile_info: This flag deletes the Starlark APIs to put compile info in an ObjcProvider.
Tentative time-frame: available and default false in 3.2, default true next release (i.e. 4.0), removed in the following release (i.e. 4.1).
--incompatible_objc_provider_remove_compile_info does work on Bazel 4.0.0.
https://github.com/pinterest/PodToBUILD/blob/master/BazelExtensions/extensions.bzl#L265 appears to use behavior that has been removed.
I believe related to https://github.com/bazelbuild/bazel/issues/10674
--incompatible_objc_provider_remove_compile_info
does work on Bazel 4.0.0.