From c61f76a1a55163cdc6b32d7b992d5e15d2f13cea Mon Sep 17 00:00:00 2001 From: Yun Peng Date: Tue, 16 Jul 2024 15:08:26 +0200 Subject: [PATCH] Add GitHub issue template for incompatible changes --- .../ISSUE_TEMPLATE/incompatible_change.yml | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/incompatible_change.yml diff --git a/.github/ISSUE_TEMPLATE/incompatible_change.yml b/.github/ISSUE_TEMPLATE/incompatible_change.yml new file mode 100644 index 00000000000000..c7b35a55317a77 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/incompatible_change.yml @@ -0,0 +1,91 @@ +name: Incompatible Change +description: Use this template to track the rollout of an incompatible change in Bazel +title: '[Incompatible Flag] OR [Incompatible Change Title]' +labels: ["untriaged", "incompatible-change"] +assignees: + - meteorcloudy + +body: + - type: markdown + attributes: + value: > + **Attention:** + Please read https://bazel.build/release/backward-compatibility + and https://bazel.build/contribute/breaking-changes for best practices of rolling out + incompatible changes in Bazel. + + - type: textarea + id: motivation + attributes: + label: Motivation + description: Describe the motivation behind this change. Why is this change needed? What problem does it solve? + validations: + required: true + + - type: textarea + id: description + attributes: + label: Description + description: Provide a clear and concise description of the incompatible change. Explain what the incompatible change is and what impact it will have. + validations: + required: true + + - type: input + id: incompatible_flag + attributes: + label: Incompatible Flag + description: The incompatible flag used to guard this change, if incompatible flag is not used, briefly explain why (e.g. minor incompatible change that's trivial to migrate for). + validations: + required: true + + - type: textarea + id: migration + attributes: + label: Migration Guide + description: Provide guidance on how users can migrate to the new behavior. Include examples, code snippets, or links to relevant documentation. + validations: + required: true + + - type: dropdown + id: bazel_version + attributes: + label: In which Bazel LTS version will this incompatible change be enabled? + multiple: false + options: + - Bazel 8 + - Bazel 9 + - Bazel 10 + + - type: textarea + id: additional_context + attributes: + label: Additional Context + description: Add any other context about the incompatible change here. + + - type: textarea + id: todo_list + attributes: + label: TODO List + description: > + Choose a todo list based whether incompatible flag is used, feel free to edit based on your needs. + + + With incompatible flag (highly recommend for incompatible changes having large impact): + + \- \[ \] Implement the incompatible change at Bazel HEAD and guard it behind a flag. + + \- \[ \] Backport the incompatible flag to the latest LTS release. + + \- \[ \] Test the incompatible change with [downstream projects](https://github.com/bazelbuild/continuous-integration/blob/master/docs/downstream-testing.md#bazel-downstream-testing) and inform broken projects. + + \- \[ \] Flip the incompatible flag at Bazel HEAD. + + \- \[ \] Delete the incompatible flag and the old behavior at Bazel HEAD. + + + Without incompatible flag (good for minor incompatible changes that are trivial to migrate for): + + \- \[ \] Implement the incompatible change at Bazel HEAD. + + \- \[ \] Check the [downstream pipeline](https://github.com/bazelbuild/continuous-integration/blob/master/docs/downstream-testing.md#bazel-downstream-testing) result and inform broken projects. +