-
-
Notifications
You must be signed in to change notification settings - Fork 287
Declare non-windows executable with .sh extension #1407
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
Conversation
Co-authored-by: Shane Delmore <[email protected]>
|
If it's repro'able here, would recommend adding a test case. but might be good to discuss the idea first to see if it would break any other use cases. |
Co-authored-by: Shane Delmore <[email protected]>
|
@wisechengyi added a test, thanks |
|
@simuons could you take a look? thanks! |
|
Merging, as @simuons is away |
|
This was a breaking change. Which sort of leads me to another issue and that is the divergence from how java rules work... |
|
This is the issue https://github.com/bazelbuild/intellij/blob/a5522a0f1787b667a3a966e927da773cb4ec51a2/java/src/com/google/idea/blaze/java/run/fastbuild/FastBuildTestEnvironmentCreator.java#L90 |
|
I'm not sure the line you linked is the actual issue. That line finds the I agree there is likely some assumption on how Java binaries are supposed to be run by the IntelliJ Bazel plugin. We can make an issue to have a flag for this feature? |
|
There is no |
|
I think we should:
|
|
Thanks for the clarification (and debugging), that sounds entirely reasonable! |
|
Sure |
|
Will do! Sorry, been a crazy few days 😅 |
|
Without a doubt... |
|
Yep, revert away. |
Description
Add an extension for the executable runfile in non-Windows OS (
.sh) to prevent an issue withArtifactPrefixConflictException.When
foo:baris a binary (or test), it will generate a runfile artifact,<bazel-out>/.../foo/bar.If we also have a subdirectory
foo/barwith targets, then there will be a conflict since those targets (e.g.foo/bar:baz) will need the<bazel-out>/.../foo/baroutput path, but that is already taken by our first artifact, resulting in Bazel erroring out withcom.google.devtools.build.lib.skyframe.ArtifactConflictFinder$ConflictException: com.google.devtools.build.lib.actions.ArtifactPrefixConflictException.Motivation
Remove conflicts between runfile executables and directory names.