Skip to content

Adopt apache/airflow-steward framework via submodule#66283

Closed
potiuk wants to merge 1 commit into
apache:mainfrom
potiuk:feat/add-steward-submodule-and-adopter-config
Closed

Adopt apache/airflow-steward framework via submodule#66283
potiuk wants to merge 1 commit into
apache:mainfrom
potiuk:feat/add-steward-submodule-and-adopter-config

Conversation

@potiuk
Copy link
Copy Markdown
Member

@potiuk potiuk commented May 2, 2026

Summary

Apache Airflow becomes an adopter of the apache/airflow-steward framework — a project-agnostic skill library for ASF-project automation. The framework lands as a git submodule at .apache-steward/apache-steward/; the per-project adopter configuration sits alongside it under .apache-steward/.

This is the first of three airflow-side PRs that complete the migration:

  1. (this PR) Add the submodule + adopter config. Existing .claude/skills/ symlinks and .github/skills/{pr-triage,pr-stats,maintainer-review} stay in place — nothing breaks for current users.
  2. Follow-up — replace the .claude/skills/ symlinks with submodule-pointing ones; delete the duplicate .github/skills/ copies.
  3. Follow-up — update contributor docs to reference the framework.

Why

The pr-triage, pr-stats, and maintainer-review (renamed pr-maintainer-review) skills were lifted into the framework over the last week (apache/airflow-steward#33) so other ASF projects can adopt the same playbook. Airflow now consumes them via submodule rather than maintaining its own copies under .github/skills/. Project-specific knobs (committers team, area-label prefix, comment-template URLs, CI-check map, review-criteria source files) live in .apache-steward/ per the framework's adopter contract.

The security workflow is not adopted here — those skills run out of the private security-tracker repo apache/airflow-s, not out of the public upstream — so no security-workflow project-config files (canned-responses.md, scope-labels.md, release-trains.md, etc.) live in this directory.

What's in .apache-steward/

File Purpose
project.md Identity (Apache Airflow / apache/airflow), upstream repo, sibling-file pointers
pr-triage-config.md Committers team (apache/airflow-committers), area-label prefix (area:), project labels (ready for maintainer review, etc.), grace windows
pr-triage-comment-templates.md Comment-body URLs (PR quality criteria, two-stage triage rationale), AI-attribution footer, project display name
pr-triage-ci-check-map.md CI-check pattern → category + doc-URL map (lifted from what pr-triage/comment-templates.md currently embeds inline)
pr-maintainer-review-criteria.md Review-criteria source files (code-review.instructions.md, AGENTS.md, per-area AGENTS.mds), security-model calibration, backport pattern, section anchors

Operational notes

  • Fresh clones / parent git pull: run git submodule update --init --recursive. Wire it as a post-merge hook to make it automatic — the framework's setup-verify-steward skill checks integration and reminds.
  • Submodule pointer: pinned at the latest framework main (commit 9774cc9, includes the four steward PRs that lifted + documented these skills).
  • No skill behaviour change yet: the existing .github/skills/{pr-triage,pr-stats,maintainer-review} and the symlinks under .claude/skills/ are untouched. Skills run from the same content they always did. The cutover is in the follow-up PR.

Test plan

  • All prek run hooks pass (markdownlint, codespell, license-header, etc.)
  • .apache-steward/ content describes airflow accurately (committers team, area-label prefix, URLs, AGENTS.md paths)
  • Reviewer eyeballs .apache-steward/project.md for accuracy
  • Reviewer confirms the existing .claude/skills/ and .github/skills/ setup still works (no behaviour change in this PR)
  • CI passes (lychee link-check, full prek)

🤖 Generated with Claude Code

Add airflow-steward at .apache-steward/apache-steward/ as a git
submodule, plus the per-project .apache-steward/ adopter
configuration the framework's PR-skill family resolves at session
start.

Apache Airflow becomes a steward adopter for the PR triage and
review skill family. The security workflow runs out of the private
security-tracker repo (apache/airflow-s), so no security-workflow
project-config files (canned-responses.md, scope-labels.md, etc.)
live here.

Adopter-config files in .apache-steward/:

- project.md — identity, upstream_repo, sibling-file pointers
- pr-triage-config.md — committers team, area-label prefix,
  project-specific labels, grace windows
- pr-triage-comment-templates.md — comment-body URLs, AI footer
  wording, project display name
- pr-triage-ci-check-map.md — CI-check pattern → category +
  doc-URL mapping for the violations comment
- pr-maintainer-review-criteria.md — review-criteria source files,
  security-model calibration, backport pattern, section anchors

Follow-up PRs cut the .claude/skills/ symlinks over to the
submodule and update contributor docs to reference the framework.

git submodule update --init --recursive is required after a fresh
clone or a parent git pull that bumps the submodule pointer; the
framework's setup-verify-steward skill checks the integration.

Generated-by: Claude Code (Claude Opus 4.7)
@shahar1 shahar1 changed the title feat: adopt apache/airflow-steward framework via submodule Adopt apache/airflow-steward framework via submodule May 3, 2026
@potiuk
Copy link
Copy Markdown
Member Author

potiuk commented May 3, 2026

Closing... I have a way better idea how it can be done :) - https://lists.apache.org/thread/sjnd6s0wczkymhcpslrq1oj51ndr3sbo

@potiuk potiuk closed this May 3, 2026
@potiuk
Copy link
Copy Markdown
Member Author

potiuk commented May 3, 2026

Note for future archaeologists: closed because the adoption design pivoted. The framework will not be consumed via git submodule; instead an adopter copies a single setup-steward skill into their repo, and that skill manages a .gitignored snapshot of the framework + symlinks the framework's other skills into the adopter's skill directory (which symlinks are also .gitignored). Local workflow modifications live as agent-readable overrides under .apache-steward-overrides/ in the adopter repo. See the upcoming setup-steward skill PR on apache/airflow-steward for the full design + onboarding flow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants