You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by gi...@apache.org on 2026/05/04 11:36:42 UTC
(datafusion) 01/01: ci: add `auto detected api change` label on breaking change detecting in the CI (#21953)
This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-21953-b2fd2d32b053f15632b9fa6941b363d67fd6844e
in repository https://gitbox.apache.org/repos/asf/datafusion.git
commit fa9ada36871074b622f3ca67fcdaf34d7a1efdbc
Author: Raz Luvaton <16...@users.noreply.github.com>
AuthorDate: Mon May 4 14:36:21 2026 +0300
ci: add `auto detected api change` label on breaking change detecting in the CI (#21953)
**before merging this PR, the label `auto detected api change` should be
created**
## Which issue does this PR close?
- Closes #21952
## Rationale for this change
Without label the releaser and the people who write the change log in a
new release won't find this using the regular
[`generate-changelog.py`](https://github.com/apache/datafusion/blob/main/dev/release/generate-changelog.py)
script and not using the existing `api change` label as described in the
issue and in the workflow comment
## What changes are included in this PR?
<img width="4122" height="1608" alt="image"
src="https://github.com/user-attachments/assets/d8f5826e-2b43-43c3-9886-64ab58e86163"
/>
## Are these changes tested?
No
## Are there any user-facing changes?
No
---
.../breaking_changes_detector_comment.yml | 28 ++++++++++++++++++++++
dev/release/generate-changelog.py | 2 +-
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/breaking_changes_detector_comment.yml b/.github/workflows/breaking_changes_detector_comment.yml
index 8e79426082..579c61cb9d 100644
--- a/.github/workflows/breaking_changes_detector_comment.yml
+++ b/.github/workflows/breaking_changes_detector_comment.yml
@@ -50,6 +50,13 @@ on:
permissions:
contents: read
+# A dedicated label, separate from the existing `api change` label.
+# `api change` may be applied manually for behavioral changes that aren't
+# strictly API changes, so we can't safely auto-remove it when this check
+# passes. This auto-managed label is fully owned by the workflow.
+env:
+ BREAKING_CHANGE_LABEL: "auto detected api change"
+
jobs:
comment-on-pr:
name: Comment on pull request
@@ -130,3 +137,24 @@ jobs:
number: ${{ steps.read.outputs.pr_number }}
body-include: '<!-- semver-check-comment -->'
delete: true
+
+ - name: Add "auto detected api change" label
+ if: steps.read.outputs.result != 'success'
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ REPO: ${{ github.repository }}
+ PR_NUMBER: ${{ steps.read.outputs.pr_number }}
+ run: |
+ gh pr edit "$PR_NUMBER" --repo "$REPO" \
+ --add-label "$BREAKING_CHANGE_LABEL"
+
+ - name: Remove "auto detected api change" label
+ if: steps.read.outputs.result == 'success'
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ REPO: ${{ github.repository }}
+ PR_NUMBER: ${{ steps.read.outputs.pr_number }}
+ run: |
+ # No-op when the label isn't currently applied.
+ gh pr edit "$PR_NUMBER" --repo "$REPO" \
+ --remove-label "$BREAKING_CHANGE_LABEL" || true
diff --git a/dev/release/generate-changelog.py b/dev/release/generate-changelog.py
index 830d329f73..7135043891 100755
--- a/dev/release/generate-changelog.py
+++ b/dev/release/generate-changelog.py
@@ -77,7 +77,7 @@ def generate_changelog(repo, repo_name, tag1, tag2, version):
cc_breaking = parts_tuple[2] == '!'
labels = [label.name for label in pull.labels]
- if 'api change' in labels or cc_breaking:
+ if 'api change' in labels or 'auto detected api change' in labels or cc_breaking:
breaking.append((pull, commit))
elif 'bug' in labels or cc_type == 'fix':
bugs.append((pull, commit))
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org