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
