Hi all,

I'd like to get some feedback on the topic of breaking cache keys for
the sake of some polish work in advance of hitting our 2.0 target.

As we have decided that cache keys are stable API for 2.0 and we have
guaranteed API stability since 1.95.0, strictly speaking breaking cache
keys is not allowed.

That said, in our last meeting we also decided to keep this on the
blocker list: https://github.com/apache/buildstream/issues/1263 "unless
we could determine that fixing #1263 could be done without breaking
cache keys"

I now have an implementation for #1263:
    https://github.com/apache/buildstream/pull/1707

And it does break cache keys, so at least this one cache key breakage
is important for 2.0.

I propose that we be lenient about cache key breakage in changes
leading up to the 2.0 release and finally seal cache keys at that time,
for both buildstream & buildstream-plugins repositories.

Here is an example of a patch which could improve life for autotools
plugin users by adding a simple switch, but we cannot implement without
breaking cache keys:

  More convenient autotools YAML configuration for enabling
  builddir != srcdir build setup.
  https://github.com/apache/buildstream-plugins/pull/21

Here is another example of a cache key breaking change which could
make life better:

  Don't consider certain aspects (like the build environment) for
  core elements which don't execute any commands, this would reduce
  unnecessary rebuilds for elements like `import`:
  https://github.com/apache/buildstream/issues/1687

I think that since we're going to break cache keys at least once before
2.0, we should allow such improvements if they are implemented before a
2.0 final.

Thoughts ?

Cheers,
   -Tristan


Reply via email to