shahar1 commented on code in PR #76839:
URL: https://github.com/apache/airflow/pull/76839#discussion_r4554819663


##########
dev/breeze/doc/ci/08_fork_ci_for_external_contributors.md:
##########
@@ -109,6 +109,58 @@ Four pieces, in dependency order:
 
 Plus `breeze ci audit` for the contributor's local setup, and documentation.
 
+### Pull request lifecycle
+
+What a gated pull request shows, and who acts next, from the moment it is 
opened until it is merged
+or closed. The [state machine](#state-machine) below is the reconciler's view 
of the same flow; this
+diagram is the contributor's and the maintainer's view. Pull requests of 
committers, collaborators
+and exempted organisations are not gated and follow the usual project CI flow.
+
+```mermaid
+%%{init: {'theme': 'neutral'}}%%
+stateDiagram-v2
+    state "Waiting for the author: draft, fork CI not set up or no run for the 
head commit" as waiting
+    state "Fork CI running" as running
+    state "Fork CI failed: out of the review queue" as failed
+    state "Green: ready for maintainer review, CI passed" as ready
+    state "Green, base too old: ready for maintainer review, CI passed pending 
until a rebase" as rebase
+    state "Green, CI files changed: needs project ci" as needs_project_ci
+    state "Project CI: use project ci" as project_ci
+    state "Approved" as approved
+    state "Merged" as merged
+    state "Closed after 30 days without fork CI activity" as closed
+
+    [*] --> waiting: an external contributor opens a pull request
+    waiting --> running: the author enables the fork workflow and pushes
+    running --> failed: a job fails, times out or is cancelled, or the run 
cannot start
+    running --> ready: the run passes on a current base
+    running --> rebase: the run passes, but the base is 200+ commits behind or 
changed the same files
+    running --> needs_project_ci: the run passes, and the pull request changes 
CI-defining files
+    failed --> running: the author pushes a fix
+    rebase --> running: the author rebases and pushes
+    ready --> running: the author pushes
+    ready --> approved: a maintainer approves
+    rebase --> approved: a maintainer approves, the merge waits for the rebase
+    ready --> project_ci: a maintainer adds use project ci
+    needs_project_ci --> project_ci: a maintainer reviews the CI change and 
adds use project ci

Review Comment:
   **minor** — `needs_project_ci` has only one way out here, so the diagram 
suggests the author can do nothing but wait for a maintainer. The reconciler's 
state machine below has `green_unverified --> running: author pushes`, and the 
table says a push resets the row. Suggest adding `needs_project_ci --> running: 
the author pushes`.



##########
dev/breeze/doc/ci/08_fork_ci_for_external_contributors.md:
##########
@@ -109,6 +109,58 @@ Four pieces, in dependency order:
 
 Plus `breeze ci audit` for the contributor's local setup, and documentation.
 
+### Pull request lifecycle
+
+What a gated pull request shows, and who acts next, from the moment it is 
opened until it is merged
+or closed. The [state machine](#state-machine) below is the reconciler's view 
of the same flow; this
+diagram is the contributor's and the maintainer's view. Pull requests of 
committers, collaborators
+and exempted organisations are not gated and follow the usual project CI flow.
+
+```mermaid
+%%{init: {'theme': 'neutral'}}%%
+stateDiagram-v2
+    state "Waiting for the author: draft, fork CI not set up or no run for the 
head commit" as waiting
+    state "Fork CI running" as running
+    state "Fork CI failed: out of the review queue" as failed
+    state "Green: ready for maintainer review, CI passed" as ready
+    state "Green, base too old: ready for maintainer review, CI passed pending 
until a rebase" as rebase
+    state "Green, CI files changed: needs project ci" as needs_project_ci
+    state "Project CI: use project ci" as project_ci
+    state "Approved" as approved
+    state "Merged" as merged
+    state "Closed after 30 days without fork CI activity" as closed
+
+    [*] --> waiting: an external contributor opens a pull request
+    waiting --> running: the author enables the fork workflow and pushes

Review Comment:
   **nit** — the reconciler drops back to `setup_required` when the fork 
workflow is disabled (`running --> setup_required: workflow disabled`), and the 
setup_required row posts a new "fork CI stopped running" comment for it. That 
path back to *Waiting for the author* is missing here. Optional: `running --> 
waiting: the fork workflow is disabled`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to