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/25 12:59:12 UTC

[PR] docs: document CI coverage on release branches and run the full suite before an RC [datafusion-comet]

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

   ## Which issue does this PR close?
   
   No issue was filed. I found this while checking what CI will cover on `branch-1.1` before cutting it.
   
   ## Rationale for this change
   
   The release process says the release branch "runs the same CI workflows as `main`". That was written before the CI tiers, and most of what runs for `main` never runs on a release branch:
   
   - GitHub only fires `schedule` on the default branch, so there is no nightly run.
   - The merge queue ruleset targets `~DEFAULT_BRANCH` only.
   - `ci.yml` only runs on push for `main`.
   
   So a pull request to a release branch gets the PR tier alone: the Linux build, lint, Rust tests, TPC-H/TPC-DS, and the Comet suites on Spark 4.1. The Spark SQL and Iceberg suites, macOS, the PyArrow UDF tests and the other Spark profiles never run there unless the pull request is labeled or the workflow is dispatched. `branch-1.0` avoids this only because its `ci.yml` predates the tiers and runs the full matrix on every pull request. `branch-1.1` will be the first release branch cut from the tiered `ci.yml`.
   
   The way to get full coverage is to dispatch `ci.yml` on the release branch, which runs every job with no path filters. Today that would also overwrite the website. The dispatch runs the `docs` job, and `docs.yaml` has no ref guard. It builds the dispatched branch's docs, rsyncs them over `asf-site` with `--delete`, and pushes, falling back to `git push --force`. Nobody has dispatched `ci.yml` on `branch-1.0`, so this has not happened yet.
   
   ## What changes are included in this PR?
   
   - `ci.yml`: the `docs` job also requires `github.ref == 'refs/heads/main'`, so a dispatch on any other branch skips the deploy. The check is on the job rather than in `compute-changes.py`, because `check-ci-config.py` asserts that a dispatch routes to every job.
   - Release process:
     - A new "Run the Full CI Suite" step before building the jars. It dispatches `ci.yml` and `miri.yml` on the release branch and shows how to list the runs, since a failed dispatch opens no `ci-nightly-failure` issue. Both runs must be green at the commit being tagged, for every release candidate, and "Tag the Release Candidate" now says so.
     - The protection step now includes a command to confirm the protection took effect. It also explains that pull requests to the release branch, backports included, run only the PR tier and should carry `run-*` labels.
     - The stale sentence in "Update Maven Version" is corrected. A `-SNAPSHOT`-only glob in the PyArrow UDF harness would not fail on the version bump pull request, because that suite is outside the PR tier.
   - CI guide: a short "Release branches" section for anyone opening a backport, linked from the release process.
   - Workflows README: the `docs` row now includes a dispatch on `main`.
   
   Not addressed here: `branch-1.0` is unprotected. `gh api repos/apache/datafusion-comet/branches/branch-1.0 --jq .protected` prints `false`, because it was never added to `protected_branches` in `.asf.yaml`.
   
   ## How are these changes tested?
   
   `python3 dev/ci/check-ci-config.py` and `actionlint --shellcheck=off` pass, and `prettier --check` passes on the changed Markdown.
   
   Only a dispatch on a branch other than `main` actually exercises the guard. For every other event it changes nothing:
   
   - On `push` and on a dispatch of `main`, `github.ref` is `refs/heads/main`, so the deploy behaves as before.
   - On a pull request, a merge group, or a schedule, `compute-changes.py` already returns `docs=false`.
   


-- 
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] ci: run every tier on release-branch pull requests, and the full suite before an RC [datafusion-comet]

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


##########
docs/source/contributor-guide/ci.md:
##########
@@ -341,6 +341,30 @@ and Iceberg 1.11. If everything is skipped, open the run's `Detect changes` job:
 `Nightly base:` commit it diffed against and the list of changed files, which is enough to tell a
 genuinely quiet day from a base that has drifted.
 
+## Release branches
+
+Release branches (`branch-N.M`) have the same workflow files as `main`, but only the PR tier runs on
+them. The merge queue covers only `main`, `ci.yml` runs on push only for `main`, and GitHub fires
+scheduled workflows only on the default branch, so a release branch gets no scheduled `ci.yml`,
+Miri or CodeQL run. A pull request targeting a release branch, such as a backport, runs the PR tier,
+and nothing runs after it merges.
+
+Label a backport for the suites it could affect, as described in
+[Opting a pull request into a suite the PR tier skips](#opting-a-pull-request-into-a-suite-the-pr-tier-skips).
+On a release branch a label is the only way a queue-tier suite runs before the change lands, and
+there is no nightly behind it to catch what the labels missed.
+
+To run every suite against a release branch, dispatch `ci.yml` on it:
+
+```sh
+gh workflow run ci.yml --repo apache/datafusion-comet --ref branch-N.M
+```
+
+The release process does this before tagging each release candidate; see
+[Run the Full CI Suite](release_process.md#run-the-full-ci-suite). A failed dispatched run opens no
+`ci-nightly-failure` issue. The `docs` job, which publishes the website, runs only from `main`, so

Review Comment:
   Agreed, that promise only held on a branch whose own ci.yml has the guard, and branch-1.1 was cut without it. #6229 has since added it to branch-1.0, and the branch-1.1 backport of this PR brings it there. In 2feeeb76c both dispatch instructions now print the branch's docs job first, and check-ci-config.py fails if the guard is dropped from ci.yml.
   



-- 
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: document CI coverage on release branches and run the full suite before an RC [datafusion-comet]

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


##########
docs/source/contributor-guide/ci.md:
##########
@@ -341,6 +341,30 @@ and Iceberg 1.11. If everything is skipped, open the run's `Detect changes` job:
 `Nightly base:` commit it diffed against and the list of changed files, which is enough to tell a
 genuinely quiet day from a base that has drifted.
 
+## Release branches
+
+Release branches (`branch-N.M`) have the same workflow files as `main`, but only the PR tier runs on
+them. The merge queue covers only `main`, `ci.yml` runs on push only for `main`, and GitHub fires
+scheduled workflows only on the default branch, so a release branch gets no scheduled `ci.yml`,
+Miri or CodeQL run. A pull request targeting a release branch, such as a backport, runs the PR tier,
+and nothing runs after it merges.
+
+Label a backport for the suites it could affect, as described in
+[Opting a pull request into a suite the PR tier skips](#opting-a-pull-request-into-a-suite-the-pr-tier-skips).
+On a release branch a label is the only way a queue-tier suite runs before the change lands, and
+there is no nightly behind it to catch what the labels missed.
+
+To run every suite against a release branch, dispatch `ci.yml` on it:
+
+```sh
+gh workflow run ci.yml --repo apache/datafusion-comet --ref branch-N.M
+```
+
+The release process does this before tagging each release candidate; see
+[Run the Full CI Suite](release_process.md#run-the-full-ci-suite). A failed dispatched run opens no
+`ci-nightly-failure` issue. The `docs` job, which publishes the website, runs only from `main`, so

Review Comment:
   [P2] Please require the target release branch to contain the deployment guard before promising that dispatch leaves the website alone. Following the newly documented command with `--ref branch-1.0` executes that branch’s existing workflow, which sets `docs=true` and permits deployment on `workflow_dispatch`. A successful docs build then replaces `asf-site` with the release branch’s site using `rsync --delete` and pushes it, contrary to this guarantee. Merging the guard into `main` does not update existing branches. Qualify both dispatch instructions with a prerequisite to verify/backport the guard, or explicitly limit them to branches containing this change.
   
   Evidence: Read-only GitHub inspection pinned `branch-1.0` to `634c885709a9cedce2ad18567667b309d7571f4a`. At that SHA, `.github/workflows/ci.yml:142` forces every output, including `docs`, to true on dispatch, and lines 202–205 permit dispatch and call the branch-local `docs.yaml`. That callee has only an Apache-repository guard and copies to `asf-site` with `rsync --delete` before pushing at lines 66–84. Offline evaluation with `github.event_name='workflow_dispatch'`, `github.ref='refs/heads/branch-1.0'` and `docs='true'` returned true for the existing branch’s deployment condition and false for this PR’s condition. No workflow was dispatched.



-- 
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] ci: run every tier on release-branch pull requests, and the full suite before an RC [datafusion-comet]

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

   Thanks @sunchao 


-- 
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] ci: run every tier on release-branch pull requests, and the full suite before an RC [datafusion-comet]

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


-- 
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] ci: run every tier on release-branch pull requests, and the full suite before an RC [datafusion-comet]

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

   Note to self for the backports once this merges.
   
   branch-1.1: cherry-pick the squash commit onto `apache/branch-1.1`. It should apply cleanly, since the CI files there are identical to this PR's base. Title it `ci: [branch-1.1] run every tier on release-branch pull requests, and the full suite before an RC (#6218)`. Open it without labels, then add `run-spark-3.4-tests`, so the label run adds only Spark 3.4. Its own run uses the new routing, so it should run every suite except the benchmark check. It will also be the first time the Spark SQL, Iceberg, PyArrow and macOS jobs run against the 1.1.0 version bump (#6236), so if one of those goes red, check for a `-SNAPSHOT` jar glob before blaming the backport.
   
   Don't dispatch `ci.yml` on branch-1.1 until that merges. Its `docs` job has no guard yet, so a dispatch would publish branch-1.1's docs over the site. Once it's in, `git show apache/branch-1.1:.github/workflows/ci.yml | sed -n '/^  docs:/,/uses:/p'` should show `github.ref == 'refs/heads/main'`, and the pre-RC dispatch of `ci.yml` and `miri.yml` is safe.
   
   branch-1.0: nothing to backport. #6229 already added the `docs` guard, and the dispatch before each 1.0.x RC covers the suites its pull requests skip. Spark SQL 3.4 and 4.0 and Iceberg 1.8, 1.9 and 1.10 have never run against anything merged there, so dispatch it well before a 1.0.1 RC, once #6228 lands.
   


-- 
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