Jakob Buchgraber
Software Engineer
![]()
Google Germany GmbH
Erika-Mann-Straße 33
80636 München
Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Diese E-Mail ist vertraulich. Falls sie diese fälschlicherweise erhalten haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter, löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen, dass die E-Mail an die falsche Person gesendet wurde.
This e-mail is confidential. If you received this communication by mistake, please don't forward it to anyone else, please erase all copies and attachments, and please let me know that it has gone to the wrong person.
--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/CAJmdR_onLNUknpFWg%2BG12Ek9CkAJSAg4P4Wicxmaq9tjENSNxA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/20190502082733.GA10977%40google.com.
<< I think an HTTP cache would be easier to maintain/deploy than an gRPC one in the general case, even with all the weirdness that John pointed out. But I'll take a gRPC one over no cache ;-)
--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/20190503084410.GA183371%40google.com.
(1) More customized caching policiesWe want to replace Bazel's hardcoded "sha256 means cacheable" with custom logic. Some of our dependencies come
from sources where calculating a fixed checksum is difficult, but we assert the URL contents should be treated as if they
were deterministic. This might include an LRU, so for example a daily snapshot of some internal package might be
cached for 15 minutes as a build-time performance optimization that still allows regeneration during an emergency.
We've also had issues in the past where an official Bazel package depended on GitHub auto-generated archives, which
do not have stable checksums. See https://github.com/protocolbuffers/protobuf/issues/3894 for discussion. One of the
cache policies we plan to implement in our remote build cluster is "a URL has multiple valid checksums", and the cache
would serve the one that the client asked for.
(2) Restricting which URLs may be depended on
(3) Supporting more checksum formats
(1) More customized caching policies
So for these kinds of dependencies you wouldn't specify a hash in your Bazel project at all? It'd be up to your proxy tocache certain dependencies that technically don't have a deterministic hash but by caching them makes themdeterministic for a while. Correct?
We've also had issues in the past where an official Bazel package depended on GitHub auto-generated archives, whichdo not have stable checksums. See https://github.com/protocolbuffers/protobuf/issues/3894 for discussion. One of the
cache policies we plan to implement in our remote build cluster is "a URL has multiple valid checksums", and the cache
would serve the one that the client asked for.Makes sense. Do I understand correctly that this wouldn't need protocol support either?
(2) Restricting which URLs may be depended onSounds reasonable. Do I understand correctly that you envision the caching layer to be able to do this transparently withoutrequiring protocol support?
(3) Supporting more checksum formatsMakes sense. I am confused though as this paragraph seems to contradict the protocol you are describing in your designdocument which seems to indicate that the ResolveRequest messages sent by Bazel will contain hashes in subresourceintegrity format because you expect Bazel to support a whole variety of hash functions.
message ResolveRequest {string instance_name = 1;
repeated string urls = 2;
repeated string integrity = 3;
}Why have this field in the protocol then?