You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@datafusion.apache.org by "andygrove (via GitHub)" <gi...@apache.org> on 2026/09/17 15:03:40 UTC

[PR] docs: how to check the scheduled CI runs are actually running [datafusion-comet]

andygrove opened a new pull request, #6000:
URL: https://github.com/apache/datafusion-comet/pull/6000

   ## Which issue does this PR close?
   
   Relates to #5999. It does not close it: that issue is about fixing the Miri job, this documents how
   to notice a job in that state in the first place.
   
   - [Rendered page — CI guide](https://github.com/andygrove/datafusion-comet/blob/docs-scheduled-ci-health/docs/source/contributor-guide/ci.md#checking-that-the-scheduled-runs-are-healthy)
   - [Rendered page — release process](https://github.com/andygrove/datafusion-comet/blob/docs-scheduled-ci-health/docs/source/contributor-guide/release_process.md#release-preparation)
   
   ## Rationale for this change
   
   After #5939 and #5963, most of our coverage of the non-default Spark and Iceberg versions runs in
   the nightly tier rather than on pull requests. That was the right trade for cost, but it moves a
   lot of signal onto a schedule, and a scheduled run has no pull request to turn red. `ci.yml` has a
   `nightly_report` job that opens a `ci-nightly-failure` issue, so that tier is covered. `miri.yml`
   and `publish_snapshot.yml` have no such step — and both are currently broken without anyone having
   noticed. Miri has failed 79 nights running (#5999) and the nightly SNAPSHOT publish has never
   succeeded since it landed in #5902, failing with a 401 against repository.apache.org.
   
   There is also a subtler failure I could not find documented anywhere. For `ci.yml`, a green
   `Required Checks` does not mean the nightly suites ran. The path filters and the diff base are both
   allowed to select nothing, which is correct on a documentation-only day, but a run that tested
   nothing is indistinguishable from a run that tested everything if you only look at the verdict. If
   the diff base ever drifts, the nightly goes green forever while testing nothing.
   
   I checked the nightly tier itself and it is working — the 2026-09-16 and 2026-09-17 runs each
   completed about 40 Spark SQL and Iceberg suite jobs, with shards running 25 to 67 minutes, and the
   second run correctly resolved its diff base to the first run's head. So this PR is documentation
   only; there is nothing to fix in the tier.
   
   ## What changes are included in this PR?
   
   A new "Checking that the scheduled runs are healthy" section in the CI contributor guide, listing
   the four schedules and which of them report their own failures, with a `gh api` loop over the three
   daily ones and guidance on reading the output for the two distinct failures — a schedule that
   stopped firing versus a streak of red nights. It also gives a second command that counts the
   nightly's suite jobs by conclusion, so "green because everything passed" can be told apart from
   "green because nothing ran."
   
   The release process gets a checklist item and a paragraph under Release Preparation pointing at
   that section, so this gets looked at once per release rather than only when someone happens to
   wonder.
   
   The documented commands use `gh api` rather than `gh run list --event=schedule`. The latter is not
   reliable: while investigating this it omitted that morning's `ci.yml` scheduled run entirely, and
   on another call returned three-week-old `miri.yml` runs as the latest three.
   
   ## How are these changes tested?
   
   Documentation only, so no tests. Every command in the new section was run against the live
   repository and produced the output the surrounding text describes. `prettier --check` and
   `python3 dev/ci/check-ci-config.py` both pass.
   


-- 
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: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org


Re: [PR] docs: how to check the scheduled CI runs are actually running [datafusion-comet]

Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove merged PR #6000:
URL: https://github.com/apache/datafusion-comet/pull/6000


-- 
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: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org


Re: [PR] docs: how to check the scheduled CI runs are actually running [datafusion-comet]

Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on PR #6000:
URL: https://github.com/apache/datafusion-comet/pull/6000#issuecomment-5731349397

   > Thanks @andygrove would be nice to include a mermaid diagram to how CI is split between PR level, MQ level, nightly
   
   Added


-- 
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: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org


Re: [PR] docs: how to check the scheduled CI runs are actually running [datafusion-comet]

Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on PR #6000:
URL: https://github.com/apache/datafusion-comet/pull/6000#issuecomment-5722136212

   <img width="549" height="1071" alt="Screenshot 2026-09-17 at 4 35 23 PM" src="https://github.com/user-attachments/assets/8657cb01-daef-4488-a1a6-2fb80e022766" />
   


-- 
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: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org


Re: [PR] docs: how to check the scheduled CI runs are actually running [datafusion-comet]

Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on code in PR #6000:
URL: https://github.com/apache/datafusion-comet/pull/6000#discussion_r4041884876


##########
docs/source/contributor-guide/ci.md:
##########
@@ -244,6 +244,58 @@ stays in one place. When you pick up a nightly failure:
 Dispatching `ci.yml` from the Actions page with **Run workflow** runs every tier, including the
 nightly suites, if you need a result before the next scheduled run.
 
+## Checking that the scheduled runs are healthy
+
+A scheduled run has no pull request to turn red, so when one breaks, nothing puts it in front of
+anyone. Comet has three daily schedules plus a weekly one, and two of the daily ones report nothing
+when they fail:
+
+| Workflow               | Cron (UTC)   | Reports a failure?                    |
+| ---------------------- | ------------ | ------------------------------------- |
+| `publish_snapshot.yml` | `0 3 * * *`  | no                                    |
+| `miri.yml`             | `0 4 * * *`  | no                                    |
+| `ci.yml` nightly tier  | `0 6 * * *`  | yes, a `ci-nightly-failure` issue     |
+| `codeql.yml`           | `16 4 * * 1` | yes, to the repository's Security tab |
+
+So the two without a reporting step have to be looked at deliberately. Check all of them at once:
+
+```sh
+for wf in ci.yml miri.yml publish_snapshot.yml; do
+  gh api "repos/apache/datafusion-comet/actions/workflows/$wf/runs?event=schedule&per_page=5" \
+    --jq ".workflow_runs[] | \"$wf\t\(.created_at[0:10])\t\(.conclusion)\t\(.html_url)\""
+done
+```
+
+Read the output for two different things:
+
+- **A missing row.** If the most recent run is not from the last day or two, the schedule itself
+  stopped firing. GitHub drops scheduled runs under load and disables them entirely in a repository
+  with no activity for 60 days, and it does not announce either. Confirm the workflow is still
+  enabled with `gh api repos/apache/datafusion-comet/actions/workflows --jq '.workflows[] | "\(.state)\t\(.path)"'`,
+  and re-enable it from the Actions page if it is `disabled_inactivity`.
+- **A run of failures.** One red night is a flake or a real regression, and for `ci.yml` there is an
+  issue open about it. Several consecutive red nights on `miri.yml` or `publish_snapshot.yml` means
+  nobody has looked; treat the streak, not the newest run, as the thing to explain.
+
+For the `ci.yml` nightly, green on its own does not mean the suites ran. Path filters and the diff
+base are both allowed to select nothing — a documentation-only day legitimately runs no suite at
+all — and a run that tested nothing reports exactly the same green `Required Checks` as a run that
+tested everything. Confirm the suites actually ran:
+
+```sh
+run=$(gh api "repos/apache/datafusion-comet/actions/workflows/ci.yml/runs?event=schedule&per_page=1" \
+        --jq '.workflow_runs[0].id')
+gh run view "$run" --json jobs \

Review Comment:
   Good catch, thanks — fixed in bacd419. You are right that the two halves of that snippet disagree with each other: the run ID is pinned to upstream and the lookup that consumes it is not, so it only works if your checkout happens to have upstream selected. I reproduced the 404 the same way, and with `--repo apache/datafusion-comet` added it returns the 40 successes and five skips the surrounding text describes.



-- 
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: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org


Re: [PR] docs: how to check the scheduled CI runs are actually running [datafusion-comet]

Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on PR #6000:
URL: https://github.com/apache/datafusion-comet/pull/6000#issuecomment-5722121196

   Correcting myself on the comment above: I built the site locally to look at the diagram and found that jsdelivr would not be the first third-party asset the Comet site loads. `docs/source/conf.py` already pulls `buttons.github.io/buttons.js`, and `docs/source/_templates/layout.html` pulls Inter and JetBrains Mono from `fonts.googleapis.com` and `fonts.gstatic.com`. Both are ours, not the theme's.
   
   So this is a fourth external host rather than a change in kind, which makes the concern I raised weaker than I put it. Still worth you nodding at, but it is not the precedent I implied.


-- 
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: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org


Re: [PR] docs: how to check the scheduled CI runs are actually running [datafusion-comet]

Posted by "sunchao (via GitHub)" <gi...@apache.org>.
sunchao commented on code in PR #6000:
URL: https://github.com/apache/datafusion-comet/pull/6000#discussion_r4039113861


##########
docs/source/contributor-guide/ci.md:
##########
@@ -244,6 +244,58 @@ stays in one place. When you pick up a nightly failure:
 Dispatching `ci.yml` from the Actions page with **Run workflow** runs every tier, including the
 nightly suites, if you need a result before the next scheduled run.
 
+## Checking that the scheduled runs are healthy
+
+A scheduled run has no pull request to turn red, so when one breaks, nothing puts it in front of
+anyone. Comet has three daily schedules plus a weekly one, and two of the daily ones report nothing
+when they fail:
+
+| Workflow               | Cron (UTC)   | Reports a failure?                    |
+| ---------------------- | ------------ | ------------------------------------- |
+| `publish_snapshot.yml` | `0 3 * * *`  | no                                    |
+| `miri.yml`             | `0 4 * * *`  | no                                    |
+| `ci.yml` nightly tier  | `0 6 * * *`  | yes, a `ci-nightly-failure` issue     |
+| `codeql.yml`           | `16 4 * * 1` | yes, to the repository's Security tab |
+
+So the two without a reporting step have to be looked at deliberately. Check all of them at once:
+
+```sh
+for wf in ci.yml miri.yml publish_snapshot.yml; do
+  gh api "repos/apache/datafusion-comet/actions/workflows/$wf/runs?event=schedule&per_page=5" \
+    --jq ".workflow_runs[] | \"$wf\t\(.created_at[0:10])\t\(.conclusion)\t\(.html_url)\""
+done
+```
+
+Read the output for two different things:
+
+- **A missing row.** If the most recent run is not from the last day or two, the schedule itself
+  stopped firing. GitHub drops scheduled runs under load and disables them entirely in a repository
+  with no activity for 60 days, and it does not announce either. Confirm the workflow is still
+  enabled with `gh api repos/apache/datafusion-comet/actions/workflows --jq '.workflows[] | "\(.state)\t\(.path)"'`,
+  and re-enable it from the Actions page if it is `disabled_inactivity`.
+- **A run of failures.** One red night is a flake or a real regression, and for `ci.yml` there is an
+  issue open about it. Several consecutive red nights on `miri.yml` or `publish_snapshot.yml` means
+  nobody has looked; treat the streak, not the newest run, as the thing to explain.
+
+For the `ci.yml` nightly, green on its own does not mean the suites ran. Path filters and the diff
+base are both allowed to select nothing — a documentation-only day legitimately runs no suite at
+all — and a run that tested nothing reports exactly the same green `Required Checks` as a run that
+tested everything. Confirm the suites actually ran:
+
+```sh
+run=$(gh api "repos/apache/datafusion-comet/actions/workflows/ci.yml/runs?event=schedule&per_page=1" \
+        --jq '.workflow_runs[0].id')
+gh run view "$run" --json jobs \

Review Comment:
   ### Correctness
   
   [P2] Pin the job lookup to the same repository as the run lookup
   
   Could this call include `--repo apache/datafusion-comet`? The preceding `gh api` always obtains an upstream run ID, but `gh run view` uses the locally selected repository. With `GH_REPO=andygrove/datafusion-comet`, the documented lookup obtains upstream run `35189906693` and then fails with HTTP 404 at `/repos/andygrove/datafusion-comet/actions/runs/35189906693`. Adding `--repo apache/datafusion-comet` under that same environment succeeds and returns five skipped and 40 successful jobs. Contributors working with a fork selected cannot perform the documented coverage check as written. An explicit repository keeps this command consistent with the other checks and removes its dependency on the caller's checkout.



-- 
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: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org


Re: [PR] docs: how to check the scheduled CI runs are actually running [datafusion-comet]

Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove commented on PR #6000:
URL: https://github.com/apache/datafusion-comet/pull/6000#issuecomment-5721956392

   @comphead added one in bacd419, at the top of the "Three tiers" section so it sets up the table rather than repeating it. It shows the four events down the left, the tier each one runs, and the label opt-in as dotted edges, including Spark 3.4 sitting on its own with nothing but a label pointing at it.
   
   One thing I would like your read on before this goes in. Our site is Sphinx, and a plain ```mermaid fence renders there as a literal code block, so making the diagram actually draw meant adding `sphinxcontrib-mermaid` to `docs/requirements.txt` and `myst_fence_as_directive` to `conf.py`. That builds clean locally and the fence comes out as a mermaid element rather than a highlighted block, but the `docs` job is push-only, so nothing on this PR exercises it — it would first run after merge.
   
   The part I am less sure about is that the extension draws the diagram in the browser and pulls mermaid.js from cdn.jsdelivr.net, which as far as I can tell would be the first third-party asset the Comet site loads. I do not think that is a problem, but it is a change in kind rather than degree for an ASF site, so I would rather you agreed than assume. If you would rather not take it on, I am happy to drop the diagram and keep this documentation-only.


-- 
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: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org