Possible removal of Build with Xcode (BwX) mode in a future update #2391
Replies: 6 comments 8 replies
-
I voted to remove the BwX mode (No). Here are a few use cases we've seen for the BwX mode:
So far, none of these use cases have happened. Additionally, Xcode mode has never actually worked for us. |
Beta Was this translation helpful? Give feedback.
-
+1 to all the above points by @CognitiveDisson . our thought process is also the same around why we need BwX and having it gives that extra confidence to remove our In-house Xcodegen setup and 100% rely on As of today, our Bazel migration is still in progress, and we have our In-house Xcodegen setup which generates projects for BwX, so having BwX in rules_xcodeproj gives us enough confidence to remove our in-house version. |
Beta Was this translation helpful? Give feedback.
-
Also voted "No" per the question, because of how important and transformational rules_xcodeproj is to our project. These issues are inconveniences that would not block us from using rules_xcodeproj (or forking it), but would be a detriment to some use cases and may reduce observability/confidence. My assumption is the benefits for dropping BwX outweigh the detriments—if not only for the reasons stated above but maintainability as well. BwX simply adds overall complexity. With that said, these are what would concern us most: Performance "Control" Today, we have a performance gap between BwB and BwX. The gap is largely rooted in performance issues related to hashing (bazelbuild/bazel#18614) and will "just be fixed" in future releases via the BLAKE3 hashing algorithm. Without BwX, we would have no easy way of knowing if our builds were on par with an equivalent xcodebuild build. If future enhancements to Swift are introduced ( Long Tail of Niche Xcode Features Our developers often want to use all of the debug tools Xcode provides. Most of these work, but sometimes new or more complex debug features do not. Some debug features our developers use BwX for include:
Each of these are essentially paper-cuts, and all almost certainly could be fixed with contributions. My assumption is that there will always be some combination of unknown bugs, or new Xcode features, that will prevent developers from using them if we only have BwB. |
Beta Was this translation helpful? Give feedback.
-
For us the use case would be allow devs to test new features that are not yet supported or fully supported in Bazel. That said, seeing the other comments here wanted to +1 that it could be useful for folks in the process of migrating to Bazel or from other generators (been there). I'm personally not against removing it though since there's a major blocker for us: it doesn't work with |
Beta Was this translation helpful? Give feedback.
-
BwB is quite slow for us, because it is not building in parallel. Maybe there is a fix for this. Sometimes BwB also fails to find a provisioning profile. If we can make a reproduction of this we will make a bug report. |
Beta Was this translation helpful? Give feedback.
-
An update: Bazel 7 makes it really hard to support BwX mode, so it's been disabled there. Also, the new incremental generation mode that is coming out soon also drops support for BwX mode. Thanks for everyone's feedback! |
Beta Was this translation helpful? Give feedback.
-
Build with Bazel (BwB) mode is the default and fully supported mode of rules_xcodeproj. BwX mode on the other hand is supported as best we can.
We are currently rewriting the generator to use an improved architecture, which will unlock big performance improvements. BwX mode has special requirements in the data it collects, and on the shape of the generated project, which has impacted the current architecture. If we were required to continue to support BwX mode (or at least support all of the same capabilities as we do today) then we won't be able to have the best possible BwB performance, saying nothing of the additional work needed to re-implement the BwX specific pieces in the rewrite.
So, given all of that, we wanted to make sure we heard for you, the community, on your usage of BwX mode. But in particular, we wanted to know if having a BwX mode was a hard requirement for you.
26 votes ·
Beta Was this translation helpful? Give feedback.
All reactions