Repository navigation
ci: infra-only pull requests need no changelog entry and cut no release - #821
Merged
Merged
Conversation
The changelog gate and the release bot each kept their own list of paths that do not ship. Both now ask the change classifier, so the lists cannot drift apart. Changelog gate: a pull request whose files are all infra needs no entry, whatever its commit subjects say, so an infra-only fix(ci) no longer forces one. A fix that only edits unit tests under internal still needs an entry. A change to the classifier or its workflow counts as infra here, although it runs every check. A dependency bump is accepted when every file is non-release or a dependency manifest by file name, which covers the bench manifests that are product for CI but not a release by themselves. The released-history guard and the metadata-sync exemption are unchanged. Release bot: the regex loop is replaced by the classifier, on the files changed since the last tag. The release is skipped when none of them ships. The chart version edit made by the metadata sync after each release is ignored while the chart still carries the released version, because it would otherwise make every range look like a chart change.
Contributor
PR Quality ReportCompared against base branch Coverage and tests
Compatibility
Performance smokePerformance smoke was skipped for this PR because no perf-sensitive paths changed. State
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The changelog gate and the release bot each kept their own list of paths that do not ship, and the lists disagreed. Both now ask the change classifier added in #820, so an infra-only pull request needs no changelog entry and cuts no release.
Builds on #820 (merged).
Changes
scripts/ci/check_changelog_pr.pyunittest.should_require_changelogreturns False before the commit-subject check when no file is product. This does not use the unit-test exception, so afix:that only editsinternal/**/_test.gostill needs an entry.is_dependency_only_praccepts a file that is non-release or a dependency manifest by name (go.mod,go.sum,Dockerfile,requirements*.txt,requirements*.in,package.json,package-lock.json,docker-compose*.yml). The separate.github/clause is gone. Bench manifests are product for CI but pass the gate as dependency-only..github/workflows/auto-release.yaml: theDOCS_OR_CI_ONLYregex loop is replaced by the classifier overgit diff --name-only <last tag>..HEAD. The release is skipped when no file ships, with P4 counting as not shipping. An empty list or a classifier error counts as product and falls through to the existing[Unreleased]check. The chart version edit that the metadata sync makes after every release is ignored while the chart still carries the released version; the tag is cut before that sync, so every range since a tag contains it.scripts/ci/tests/test_check_changelog_pr.py: new cases, and two existing assertions updated (below).Behaviour
fix(ci): ...touching only.github/,scripts/,security/ci:touching only.github/workflows/ci.yamlfeat:orfix:touching onlydocs/orREADME.mdfix:touching onlyinternal/x/y_test.gofix:touchinginternal/scripts/ci/change_scope.pyor its workflow onlysecurity/requirements-semgrep.*)bench/visualpackage files)test/e2e-uipackage files)go.modchange (Dependabot #812)Proofs
python3 -m unittest discover -s scripts/ci/tests -p 'test_*.py': 131 tests pass (120 on the base branch); 44 intest_check_changelog_pr.python3 scripts/ci/check_changelog_pr.py --base origin/main --head HEADon this branch:skipped (no releasable changes detected).v2.24.4..0638246c(ci: the daily report pull request passes the changelog and label checks and never cuts a release #807 and the metadata sync): skipped.v2.24.0..v2.24.1(workflows, docs, scorecard): skipped.6c20fb03..be98f83f,..eadfb921,..f88e4134(Dependabot build(deps): bump the actions-minor group with 3 updates #817, build(deps): bump certifi from 2026.7.22 to 2026.10.19 in /security #816, build(deps): bump the website-deps group in /website with 2 updates #815): skipped.v2.24.5..6c20fb03(ci: pin tool and test images by digest, pip installs by hash, and widen Dependabot #808, chart template): releases.v2.24.3..v2.24.4(containsinternal/changes): releases.6c20fb03..264ccc92: releases, because build(deps): bump github.com/klauspost/compress from 1.20.1 to 1.20.3 in the go-minor group #812 changesgo.modand build(deps-dev): bump @playwright/test from 1.59.1 to 1.64.1 in /bench/visual in the visual-deps group #813 changesbench/visualpackage files, both product.actionlintis clean onauto-release.yaml;zizmor 1.30.1reports the same single pre-existing finding before and after.Not applicable
Infra-only PR; product checks (e2e vs Loki, Grafana range matrix, visual, A/B, benchstat, load) do not apply.