-
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
RemoteExecutionService: support output_symlinks in ActionResult #18198
Conversation
cc: @fmeum as we discussed about this on Slack |
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.
@sluongng https://github.com/bazelbuild/remote-apis/blob/35aee1c4a4250d3df846f7ba3e4a4e66cb014ecd/build/bazel/remote/execution/v2/remote_execution.proto#L1054 reads as if servers could add the same symlinks to both the old fields and the new one, which would cause the current implementation to throw.
d06846c
to
8135beb
Compare
I switched from using an Iterable to a Set so I think it should work... @fmeum what am I missing? 🤔 |
Since Remote API v2.1, both - output_file_symlinks - output_directory_symlinks were marked as deprecated in favor of output_symlinks. However, Bazel downloadOutputs has only support the 2 deprecated fields and not output_symlinks. Add support for output_symlinks.
8135beb
to
602a302
Compare
This is a follow-up to bazelbuild#18198 Make Bazel compatible with newer version of Remote Api by setting output_paths along-side output_directories and output_files. The latter 2 are deprecated in newer REAPI specification.
@sluongng Sorry, I missed the fact that you are now building a set. I still see a problem though: The set will deduplicate |
@fmeum I think throwing an error could be a bit hostile toward both users and remote execution server implementations. The difference between throwing an error vs the current approach should only be how hard is it to deprecate and remove the old fields. In my mind, I would imagine the following steps are required:
So I would push back and say the current approach of accepting both old and new fields without throwing errors, should be more friendly toward the current ecosystem. |
We may be misunderstanding each other: I fully agree that Bazel should ideally support a mix of both the old and the new fields as long as the values in both fields don't contradict each other. What I am worried about is a situation where e.g. @sluongng Do you have a better understanding of my point now? |
Oh I see 🤔 I don't expect that to happen in reality, but perhaps it would not hurt to do a check for it. |
This is a follow-up to bazelbuild#18198 Make Bazel compatible with newer version of Remote Api by setting output_paths along-side output_directories and output_files. The latter 2 are deprecated in newer REAPI specification.
src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java
Outdated
Show resolved
Hide resolved
This is a follow-up to bazelbuild#18198 Make Bazel compatible with newer version of Remote Api by setting output_paths along-side output_directories and output_files. The latter 2 are deprecated in newer REAPI specification.
eb5f259
to
429ffd5
Compare
Failed MacOS Android test seems to be unrelated to this PR @tjgq PTAL |
This is a follow-up to bazelbuild#18198 Make Bazel compatible with newer version of Remote Api by setting output_paths along-side output_directories and output_files. The latter 2 are deprecated in newer REAPI specification.
This is a follow-up to #18198 Make Bazel compatible with newer version of Remote Api by setting output_paths along-side output_directories and output_files. The latter 2 are deprecated in newer REAPI specification. Closes #18202. PiperOrigin-RevId: 527560509 Change-Id: I14c80d69aa9a5e9bf29a8c5694412ecd58ea17bf
@bazel-io flag |
@bazel-io fork 6.3.0 |
This is a follow-up to bazelbuild#18198 Make Bazel compatible with newer version of Remote Api by setting output_paths along-side output_directories and output_files. The latter 2 are deprecated in newer REAPI specification. Closes bazelbuild#18202. PiperOrigin-RevId: 527560509 Change-Id: I14c80d69aa9a5e9bf29a8c5694412ecd58ea17bf
Since Remote API v2.1, both - output_file_symlinks - output_directory_symlinks were marked as deprecated in favor of output_symlinks. However, Bazel downloadOutputs has only support the 2 deprecated fields and not output_symlinks. Add support for output_symlinks. Closes bazelbuild#18198. PiperOrigin-RevId: 527511382 Change-Id: I350ab77a5d30ab06dab4118cf76f0b0e7650a739
Since Remote API v2.1, both - output_file_symlinks - output_directory_symlinks were marked as deprecated in favor of output_symlinks. However, Bazel downloadOutputs has only support the 2 deprecated fields and not output_symlinks. Add support for output_symlinks. Closes bazelbuild#18198. PiperOrigin-RevId: 527511382 Change-Id: I350ab77a5d30ab06dab4118cf76f0b0e7650a739
This is a follow-up to bazelbuild#18198 Make Bazel compatible with newer version of Remote Api by setting output_paths along-side output_directories and output_files. The latter 2 are deprecated in newer REAPI specification. Closes bazelbuild#18202. PiperOrigin-RevId: 527560509 Change-Id: I14c80d69aa9a5e9bf29a8c5694412ecd58ea17bf
Since Remote API v2.1, both - output_file_symlinks - output_directory_symlinks were marked as deprecated in favor of output_symlinks. However, Bazel downloadOutputs has only support the 2 deprecated fields and not output_symlinks. Add support for output_symlinks. Closes #18198. PiperOrigin-RevId: 527511382 Change-Id: I350ab77a5d30ab06dab4118cf76f0b0e7650a739 Co-authored-by: Son Luong Ngoc <sluongng@gmail.com>
This is a follow-up to #18198 Make Bazel compatible with newer version of Remote Api by setting output_paths along-side output_directories and output_files. The latter 2 are deprecated in newer REAPI specification. Closes #18202. PiperOrigin-RevId: 527560509 Change-Id: I14c80d69aa9a5e9bf29a8c5694412ecd58ea17bf Co-authored-by: Son Luong Ngoc <sluongng@gmail.com>
Since Remote API v2.1, both
were marked as deprecated in favor of output_symlinks.
However, Bazel downloadOutputs has only support the 2 deprecated fields
and not output_symlinks.
Add support for output_symlinks.