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
Add remote output service proto #21140
Conversation
db9fa3e
to
8a247c5
Compare
Hey! Would you want me to continue posting feedback in the document, or should I put it in the PR going forward? |
Let's continue the review here! |
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.
Thanks for working on this, @coeuvre!
@EdSchouten @tjgq Sorry for the delay, I just had a long vacation. I have updated the PR, please take another look! |
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.
LGTM. Thanks a lot for working on this, @coeuvre!
FYI: I just finished a change to reimplement bb_clientd on top of this new protocol. I'll make sure to publish it as soon as this PR gets merged. |
c75ffaf
to
0b6cefa
Compare
@coeuvre Should this be cherry-picked into 7.x? |
The plan is to cherry-pick both the protocol and client code into 7.2. |
Google has merged a change for adding the Remote Output Service protocol to their code base: bazelbuild/bazel#21140. They did however make a couple of changes to it. For example: - The protocol has been made REv2 agnostic. All explicit coupling to REv2 has been moved into a helper protocol. - BatchCreate() has been renamed to StageArtifacts(). It can only be used to create files and directories. Not symlinks. It also doesn't provide options to clean directories. This is likely going to hurt runfiles directory creation, but we'll see whether that is actually a problem in practice. - BatchStat() no longer provides follow_symlinks and include_file_digests. Symlinks are no longer followed, and file digests should always be included. - There is a FinalizeArtifacts() function. This function can be used to reliably implement file modification tracking. As we don't implement that yet, we can simply let it be a stub for the time being.
Google has merged a change for adding the Remote Output Service protocol to their code base: bazelbuild/bazel#21140. They did however make a couple of changes to it. For example: - The protocol has been made REv2 agnostic. All explicit coupling to REv2 has been moved into a helper protocol. - BatchCreate() has been renamed to StageArtifacts(). It can only be used to create files and directories. Not symlinks. It also doesn't provide options to clean directories. This is likely going to hurt runfiles directory creation, but we'll see whether that is actually a problem in practice. - BatchStat() no longer provides follow_symlinks and include_file_digests. Symlinks are no longer followed, and file digests should always be included. - There is a FinalizeArtifacts() function. This function can be used to reliably implement file modification tracking. As we don't implement that yet, we can simply let it be a stub for the time being.
Google has merged a change for adding the Remote Output Service protocol to their code base: bazelbuild/bazel#21140. They did however make a couple of changes to it. For example: - The protocol has been made REv2 agnostic. All explicit coupling to REv2 has been moved into a helper protocol. - BatchCreate() has been renamed to StageArtifacts(). It can only be used to create files and directories. Not symlinks. It also doesn't provide options to clean directories. This is likely going to hurt runfiles directory creation, but we'll see whether that is actually a problem in practice. - BatchStat() no longer provides follow_symlinks and include_file_digests. Symlinks are no longer followed, and file digests should always be included. - There is a FinalizeArtifacts() function. This function can be used to reliably implement file modification tracking. As we don't implement that yet, we can simply let it be a stub for the time being.
@bazel-io fork 7.2.0 |
Working towards bazelbuild#20933. Closes bazelbuild#21140. PiperOrigin-RevId: 613219486 Change-Id: Ie4e02e04e2dcfc444234fb164a73865edf8d9ba0
The changes in this PR have been included in Bazel 7.2.0 RC1. Please test out the release candidate and report any issues as soon as possible. |
Working towards #20933.