-
Notifications
You must be signed in to change notification settings - Fork 87
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
Nest output base inside of "outer" output path #1221
Nest output base inside of "outer" output path #1221
Conversation
7f65e66
to
538a5ae
Compare
This has an issue where for non-normal builds (e.g. SwiftUI Previews) non-source generated inputs, mainly plist files, will exist in a different place than XCBuild expects them. This isn't an issue for source files because of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems reasonable. Are there any particular projects or configurations that you'd like reviewers to validate with this change? I don't have any projects that use SwiftUI previews but I could try running SwiftLint with tsan with this if you like.
Because of the above bug, I think those builds might fail as well (but I'm working on those now). Just testing normal builds is good enough integration testing for me. I'm not sure how this one could fail, but it's a big enough change that I wanted some other people testing it out as well. |
Top hatting this locally now |
This currently breaks index importing as well, since the nested |
Was able to test our targets with this and click to definition and syntax highlighting seem to be intact |
(I also broke CI with this 😆.) |
538a5ae
to
3d7541b
Compare
This is to make sure that the analysis cache stays as hot as possible. This should bring the consistency of BwB performance more in line with BwX. We currently don't set a different output base for each of the different configs (e.g. SwiftUI Preview, asan, etc.), as some generated build inputs (e.g. Info.plists) currently can't be found that way. This means that switching between SwiftUI Previews and normal builds, or having builds that have different sanitizers set, will clear at least some of the analysis cache.
470d859
to
927e13d
Compare
I'm consistently getting a Bazel crash after this commit. Both 5.3.1 and 6.0.0-pre.20220922.1
|
Where do you get this crash? Do you still get the crash after a For some reason Bazel is looking at those files as inputs. Looks similar to bazelbuild/bazel#10653 and bazelbuild/bazel#13951. |
Also, there shouldn't be (and probably isn't?) a |
It seems to happen during analysis of project generation https://app.buildbuddy.io/invocation/d4a6721d-fd10-482b-9cd7-9d6f0862746f
Yes
Same
|
Are you able to create a minimal repro for this? The example projects don't hit this (even when unsetting the output_base override). I'm wondering if you have a flag set that is changing the searching behavior in some way. |
I was able to work around this for now by setting a custom/relative Is that intended to be a requirement? I think not having it relative leads to an infinite symlink (though real root of that I haven't looked very deeply into, for instance if there is a bad assumption being made) |
It's not a requirement, and I test without it as well. Can you create a minimal repro for me (even showing how the examples get in that state)? |
I think the main issue might be that we have |
This is to make sure that the analysis cache stays as hot as possible. This should bring the consistency of BwB performance more in line with BwX.
We currently don't set a different output base for each of the different configs (e.g. SwiftUI Preview, asan, etc.), as some generated build inputs (e.g. Info.plists) currently can't be found that way. This means that switching between SwiftUI Previews and normal builds, or having builds that have different sanitizers set, will clear at least some of the analysis cache.