-
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
Remove objc_library transition #16870
Comments
I started looking at providing an incompatible flag for removing this, but unsurprisingly it breaks some tests, I haven't started debugging since I figure the real blocker will be making google compatible, in which case I'm not sure how feasible this is to do from the outside |
@trybka This is relevant to your interests. |
It's not terrible to fix internally, but not trivial, either. Most issues were fairly straightforward: like migrating from a There were some harder ones where folks are doing clever things with the unconfigured target graph and expecting I was considering some kind of tristate where the transition is either on/soft-off/hard-off. For soft/hard, it either reports an error if it cannot configure, say, WDYT? |
I guess that solution is at a slightly different level that what I was thinking about in the transition itself, which I was mostly just making a no-op with the incompatible flag. At what point would the starlark implementation know enough about whether or not it would be configurable to be able to make the decision of soft/hard fail? |
I was being somewhat imprecise there. Then, in the Starlark rule impl, we can just check to see whether the action is enabled or not. Something like this:
|
Whatever the details, I think when the phrase "depot cleanup" comes up it's perfectly reasonable to flag-gate functionality and allow Bazel and Google to migrate on their own timelines. Depot cleanups are often involved, long, and by nature org-specific. I'm still struggling with this for For Bazel, we'd have to similarly check we don't get downstream breakages? |
@meteorcloudy for Greg's question about downstream breakages |
If this change can be enabled by a flag, you can follow our breaking change process to test it in https://buildkite.com/bazel/bazelisk-plus-incompatible-flags. You can also run a downstream testing against your custom version of Bazel: https://github.com/bazelbuild/continuous-integration/blob/master/docs/downstream-testing.md |
This is a migration for bazelbuild#16870 Users who rely on the current behavior should instead wrap their library in a target from [rules_apple](https://github.com/bazelbuild/rules_apple).
I submitted a flag for an incompatible change here #19256 and actually @trybka in the change moving the toolchain to apple_support I did something similar as you mention above, so I think we've already solved that case. bazel/src/main/starlark/builtins_bzl/common/objc/semantics.bzl Lines 19 to 34 in 5806691
|
This is a migration for bazelbuild#16870 Users who rely on the current behavior should instead wrap their library in a target from [rules_apple](https://github.com/bazelbuild/rules_apple).
This is a migration for bazelbuild#16870 Users who rely on the current behavior should instead wrap their library in a target from [rules_apple](https://github.com/bazelbuild/rules_apple).
This is a migration for #16870 Users who rely on the current behavior should instead wrap their library in a target from [rules_apple](https://github.com/bazelbuild/rules_apple). Fixes #19204 Closes #19256. PiperOrigin-RevId: 561253613 Change-Id: I1b1b24a08caa33e86881bfe376a525060c9887a9
This is a migration for bazelbuild#16870 Users who rely on the current behavior should instead wrap their library in a target from [rules_apple](https://github.com/bazelbuild/rules_apple). Fixes bazelbuild#19204 Closes bazelbuild#19256. PiperOrigin-RevId: 561253613 Change-Id: I1b1b24a08caa33e86881bfe376a525060c9887a9 (cherry picked from commit 0f34e76)
Thanks for working on this change. I use a custom toolchain for objc compilation, and the built-in apple transition causes unexpected configuration changes that are difficult to work around. |
This is a migration for bazelbuild#16870 Users who rely on the current behavior should instead wrap their library in a target from [rules_apple](https://github.com/bazelbuild/rules_apple). Fixes bazelbuild#19204 Closes bazelbuild#19256. PiperOrigin-RevId: 561253613 Change-Id: I1b1b24a08caa33e86881bfe376a525060c9887a9 (cherry picked from commit 0f34e76)
This is a migration for #16870 Users who rely on the current behavior should instead wrap their library in a target from [rules_apple](https://github.com/bazelbuild/rules_apple). Closes #19383. PiperOrigin-RevId: 561253613 Change-Id: I1b1b24a08caa33e86881bfe376a525060c9887a9 (cherry picked from commit 0f34e76)
Through the discussion on this issue it came up that we might want to remove the objc_library transition. I also think this might be a blocker to some changes like this where we would like to change the transition in rules_apple to support this case, but a similar transition is duplicated here and likely needs to be kept roughly in sync.
We heard at bazelcon that some folks at google might be looking into removing this, so I wanted to file this tracking issue for discussion
The text was updated successfully, but these errors were encountered: