blob: 46ca69ad3716096cc3afc19745856642ebccda56 [file] [log] [blame]
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:
- sgowroji
- iancha1992
- satyanandak
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 no incompatible flag is 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 on 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.