Hi all,
Not long ago before the mailing list migration, I brought up a thorough
proposal[0] after discussing the mess which is "artifact cache
configuration".
While I think this is a mess we desperately need to cleanup before 2.0,
there is also the issue of disabling remote cache interactions at
runtime[1], a highly popular and yet unsolved issue which has been
duplicated here[2] and most recently here[3].
In the recently duplicated issue, Thomas Coldrick asserts that using
the `bst build --remote` option to point to a server which does not
resolve would allow disabling remote artifact cache interactions; but I
am doubtful of this, mostly because of how things stand with artifact
configurations being scattered across project configurations and
junction configurations.
The contract is unclear, and if it happens to work reliably now, there
is nothing in the documentation which suggests that one should rely on
it, ergo there is no contract and as such; there is no feature one can
rely on to disable remote cache interactions.
I am suggesting today that we need to consider the ability of disabling
remote caches[0]:
- Do we want it only for the toplevel project ?
- Recursively ? with a -J/--cross-junctions option ?
- With granular selection of which junctions to disable cache
interactions for ? (with junction path specifications on the
command line ?)
In conjunction with sorting out the mess described in [1]:
- Too much flexibility in artifact cache configuration
- Unclear contract when it comes to junctions suggesting
artifact cache configuration related things
- Essentially all around undefined behavior we need to
clarify.
This is a preliminary email to see how we would like to proceed on this
front, my last proposal came at a time when we were all very busy but
it is thankfully on record.
I can repost it to this list as a start if we are ready to start
discussing that ?
Cheers,
-Tristan
[0]: https://mail.gnome.org/archives/buildstream-list/2020-May/msg00018.html
[1]: https://gitlab.com/BuildStream/buildstream/-/issues/1065
[2]: https://gitlab.com/BuildStream/buildstream/-/issues/1240
[3]: https://gitlab.com/BuildStream/buildstream/-/issues/1396
[4]: https://gitlab.com/BuildStream/buildstream/-/issues/1396#note_417231449