bazel-xcode / PodToBUILD

An easy way to integrate CocoaPods into Bazel
Apache License 2.0
323 stars 69 forks source link

BazelExtensions - Incompatible with Bazel ObjcProvider to CcInfo migration #170

Closed dgcoffman closed 3 years ago

dgcoffman commented 3 years ago

https://github.com/pinterest/PodToBUILD/blob/master/BazelExtensions/extensions.bzl#L265 appears to use behavior that has been removed.

ERROR: /.../Vendor/React/BUILD.bazel:101:13: in _gen_includes rule //Vendor/React:React_includes:
Traceback (most recent call last):
    File "/.../Vendor/rules_pods/BazelExtensions/extensions.bzl", line 264, column 42, in _gen_includes_impl
        return apple_common.new_objc_provider(
Error in new_objc_provider: Key 'include' no longer supported in ObjcProvider (use CcInfo instead).

I believe related to https://github.com/bazelbuild/bazel/issues/10674

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.

jparise commented 3 years ago

Resolved by #174