Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 40 additions & 1 deletion .agents/skills/prepare-providers-documentation/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,27 @@ Rules:
indent, double backticks).
- Subjects must be the original commit subject with backticks replaced by
single quotes (matches `message_without_backticks`). Don't paraphrase.
- **Exception — collapse within-wave "add then rename/rework" chains into one
net entry.** When several pending commits are steps toward *one* net change —
a feature added in one PR and renamed or reworked in a later PR, both since
the last release (the released-only situation from Phase 3) — do **not** list
the intermediate steps as separate entries. A reader who never saw the
released intermediate form gets no context from ``Add X listener (#a)`` under
Features plus ``Rename X to Y (#b)`` under Misc. Write a **single** entry that
describes the **net user-facing change** and references **all** related PRs,
placed in the section of the most-impactful step. Real example: #68082 added
a Kafka listener and #70014 renamed it to the Kafka Event Producer in the same
wave → ``Add Kafka Event Producer publishing DagRun and TaskInstance
state-change events (#68082, #70014)`` under Features (and *no* separate Misc
"Rename …" line). This is the changelog counterpart of the unreleased-feature
classification rule: classify the rename as non-breaking (Phase 3) **and**
describe only what shipped, naming every PR involved.
- **Capitalize the first letter of every entry**, not only after stripping a
Conventional Commit prefix. Contributors sometimes write a lowercase subject
(`derive keycloak oauth redirect_uri …`) or a pseudo-scope
(`cncf-kubernetes: fix …`); the changelog convention is a leading capital, so
render them as ``Derive keycloak oauth redirect_uri …`` /
``Cncf-kubernetes: fix …``.
- **Strip Conventional Commit prefixes** before writing to the changelog.
If the subject starts with a prefix like `feat:`, `fix:`, `chore:`,
`docs:`, `refactor:`, `ci:`, `test:`, `perf:`, `build:`, or `style:`
Expand All @@ -519,7 +540,17 @@ Rules:
Example: `refactor: Fix _is_http_client_closed ...` →
`Fix _is_http_client_closed ...`. Airflow does not use Conventional
Commits and these prefixes should not appear in changelogs.
- Always keep the `(#NNNN)` PR suffix.
- **Send no-PR release-tooling commits to the excluded block**, even when the
Phase 1 deterministic classifier labeled them `documentation`. Subjects like
``Prepare … providers release/documentation …`` and ``Hide non-user-facing
entries from ad-hoc provider release notes`` (often with no `(#NNNN)` suffix
because they were committed directly) are release plumbing, not user-facing
changes — a `(#NNNN)`-less line in a visible section reads as a mistake. Put
them under the `.. Below changes are excluded …` block. breeze's deterministic
classification can even be inconsistent for the same commit across providers,
so normalize to excluded.
- Always keep the `(#NNNN)` PR suffix (or, for a collapsed chain, the
comma-separated list of all involved PRs).

#### 4c. Regenerate templates with breeze

Expand Down Expand Up @@ -616,6 +647,14 @@ provider-by-provider:
*"Provider dependency version bumps detected that should only be performed
by Release Managers!"*. `git diff` the changed `pyproject.toml` files for
`apache-airflow-providers-*` `>=` changes and list them for the RM.
- **Scan the new changelog sections for three entry defects** — grep the lines
you added: (1) a bullet whose text starts with a lowercase letter → capitalize
it (Phase 4b); (2) a bullet in a *visible* section (Features / Bug Fixes /
Misc / Doc-only) with no `(#NNNN)` suffix → usually no-PR release-tooling that
belongs in the excluded block (Phase 4b); (3) an "add then rename" pair for
the same feature left as two separate entries → collapse into one net entry
naming both PRs (Phase 4b). Reviewers reliably catch all three, so fix them
before handing off.
- Flag anything where Phase 3.5 had to escalate, so the RM can double-check.

Stop here. Do not commit, do not push — the release manager opens the PR
Expand Down