bazelbuild / bazelbuild/continuous-integration
A pipeline should be able to suppress some flags from .bazelrc
- Dominant language
- Python
- Stars
- 302
- Forks
- 194
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 41
Description
While preparing Bazel 3.5 I encountered this problem
- we flipped the default for a flag and removed it within the same release cycle. --experimental_allow_incremental_repository_updates
- this caused rules_typescript to break. https://buildkite.com/bazel/bazel-at-head-plus-downstream/builds/1608#ceace0eb-4175-4b53-8717-71e722856fe6
```
Starting local Bazel server and connecting to it..
INFO: Reading rc options for 'version' from /var/lib/buildkite-agent/builds/bk-docker-fj3x/bazel-downstream-projects/rules_typescript/.bazelrc:
Inherited 'common' options: --experimental_allow_incremental_repository_updates
ERROR: --experimental_allow_incremental_repository_updates :: Unrecognized option: --experimental_allow_incremental_repository_updates
```
- rules_typescript depended on the flag true, so it had to set it for 3.4.
- if we change rules_typescript to not use the flag the tests will fail with the release bazel
- if we do not change it, it fails with 3.5
But the problem is not really the issues. The point is that when we should be running overview pipelines without any experimental flags set. Individual rule sets might want that for their CI, but if we want a generally interoperable community, we can't allow any of them to require experimental features. So, pipelines like the federation need the ability to remove specific flags from .bazelrc. A regex to remove all --experimental, and/or all --incompatible would ensure that every rule set being tested in that pipeline is not at odds with any of the others. It should be a regex so we don't have to update the pipeline spec every time we add or remove a flag.
Contributor guide
Assessment
This issue has not been assessed yet.