From 9429efa8bc9e8a9b2d9e74f244b1d70529167c2e Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Sun, 22 Sep 2019 22:37:33 -0400 Subject: [PATCH] add outline about what CI pipelines mean --- docs/ci.md | 27 +++++++++++++++++++++++++++ docs/index.md | 1 + 2 files changed, 28 insertions(+) create mode 100644 docs/ci.md diff --git a/docs/ci.md b/docs/ci.md new file mode 100644 index 0000000..1f72a1b --- /dev/null +++ b/docs/ci.md @@ -0,0 +1,27 @@ +# Bazel Federation - How we use CI to gate PR and releases + +*NOTE: This document is a work in progress. It is very much incomplete.* + +## TL;DR; + +For non-incompatible flag flip realeases + +- There is a Federation major version track for every incompatible flag flip + bazel release. +- We have a minor federation release every time we update a rule version +- Minor version changes (semantically compatible) are allowed in a federation + track +- Major version chanages are only allowed at flag flip releasess. +- Bazel RC candidates (N+1)rc have to test with the federation using bazel N. + If CI fails, then we have to block the Bazel release, because we must have made an + incompatible change by mistake. We do not block Bazel CI at post submit, + because we may decide to fix forward. + +For incompatible flag flip realeases + +- There will be a CI chain with Bazel + all the incompatible flags we intend + to flip in the next major release +- Breaking rules will not block any individual submit +- We can only do the Federation release when there is a solution with all + the rules passing. Bazel team and rule owners have to learn to work this + out with reasonable speed. diff --git a/docs/index.md b/docs/index.md index 70db540..2b2ad15 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,3 +6,4 @@ incomplete.* - [About](about.md) - [How to integrate rules into the Federation](how_to_integrate.md) - [Code](https://github.com/bazelbuild/bazel-federation) +- [How CI is used to gate releases](ci.md)