Hello everyone,
Following the two discussions on dev@ ("[DISCUSS] Run CI for external
contributions in contributor forks" and "[DISCUSS] Next step after the PR
limit: "your PR, your CI""), I would like to call for lazy consensus on
AIP-120:
https://cwiki.apache.org/confluence/spaces/AIRFLOW/pages/451974711/AIP-120+Run+CI+for+external+contributions+in+contributor+forks
In short: PRs from external contributors (not committers or
collaborators) run CI in the contributor's own fork rather than in the
project's CI. The PR shows the fork run's status and links to it. A PR
stays in draft until its fork CI is green, so maintainers mostly look at
PRs that already pass. Committers' and collaborators' PRs keep using
project CI as today.
What is included, based on the feedback in the discussion:
* An opt-in pilot first. Contributors join by adding their GitHub login
to the [pilot] table in .github/fork-ci-gate.toml. Committers can try
it on a single PR with the "use fork ci" label.
* A green fork run is only trusted when the PR does not change what CI
runs (.github/, dev/breeze/, scripts/ci/ and similar). Such PRs stay in
draft until a maintainer reviews them and runs project CI with the
"use project ci" label, which maintainers can also use on any PR they
want verified in project CI before merging.
* The gate never falls back to project CI when it cannot decide. A PR
that edits the workflows to get around the gate is detected and closed.
* A 7-day inactivity period, as described in the AIP.
* Fork runs use the contributor's own GitHub Actions quota, not the
ASF's, which also helps with the concurrent-jobs limits Justin pointed
out.
The design and ADR are in https://github.com/apache/airflow/pull/73378,
and the implementation is in five stacked PRs:
1. https://github.com/apache/airflow/pull/74819 - gate in ci-amd.yml
2. https://github.com/apache/airflow/pull/74820 - fork-mode selective checks
3. https://github.com/apache/airflow/pull/74822 - reconciler and
scheduled monitor
4. https://github.com/apache/airflow/pull/74823 - "breeze ci audit" to
check your fork setup
5. https://github.com/apache/airflow/pull/74825 - contributor and
maintainer docs
Everything ships switched off. After the lazy consensus passes, the plan
is to merge the PRs, run the opt-in pilot, and then switch it on for all
external contributors with a separate one-line change.
The lazy consensus will last 72 hours, until 2026-10-22 12:00 UTC. If
there are no objections by then, AIP-120 is accepted.
J.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]