Skip to content

Remove the scheduled JuliaFormatter format-pr workflow - #98

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas:green/FastAlmostBandedMatrices.jl
Oct 14, 2026
Merged

ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas:green/FastAlmostBandedMatrices.jl

Conversation

@ChrisRackauckas

Copy link
Copy Markdown
Member

🚧 UNREVIEWED — awaiting review by @ChrisRackauckas. Filed by an AI agent running as @ChrisRackauckas; Chris has not seen this.
Harness: Devin CLI 3000.11.3 (diagnosis and fix), Claude Code 2.1.285 (PR) · Model: fusion-claude-opus-5-5-high-sidekick-swe-2-medium
Conversation: local Claude session 3c311569-dda6-4687-bc9f-65febb212c33 (fleet master)

This fixes a failure on the default branch's CI. The diagnosis and the evidence below come from the investigating agent's report; "confirmed by running" and "read in logs" are kept apart there.

Repo state: main at 578e7f2 ("Bump versions for release (#97)"). On main, Tests, Downgrade, Downstream and format-check all passed for that commit. Two workflows failed on main:

Workflow Run Cause Category
Documentation (push) https://github.com/SciML/FastAlmostBandedMatrices.jl/actions/runs/38483093460 gh-pages push race with the PR #97 preview deploy FLAKY (CI race)
format-pr (schedule) https://github.com/SciML/FastAlmostBandedMatrices.jl/actions/runs/38489959826 workflow calls julia without installing it; the job ran on a self-hosted runner that has no Julia repo CI config bug, triggered by runner assignment → FIX-READY

1. Documentation: git push to gh-pages rejected (FLAKY)

Error (job "build / Build and Deploy Documentation", https://github.com/SciML/FastAlmostBandedMatrices.jl/actions/runs/38483093460/job/115590134982):

[gh-pages 2a798c4] build based on 578e7f2
To https://github.com/SciML/FastAlmostBandedMatrices.jl.git
 ! [rejected]        HEAD -> gh-pages (fetch first)
error: failed to push some refs to 'https://github.com/SciML/FastAlmostBandedMatrices.jl.git'
ERROR: LoadError: failed process: ... git push -q upstream HEAD:gh-pages ...
in expression starting at .../docs/make.jl:26

The docs build passed (makedocs and HTML rendering succeeded). Only deploydocs failed.

Cause (read in logs and the GitHub API, not reproduced locally): two Documentation runs pushed to gh-pages at the same moment:

  • The main push run 38483093460 (runner self-hosted-4vcpu-16gb-8q5rj-runner-wvlx9) and the PR Bump versions for release #97 run 38483089399 (https://github.com/SciML/FastAlmostBandedMatrices.jl/actions/runs/38483089399, runner ...-m4tng) were created 2 s apart (23:15:14/16Z). Both waited about 2.5 h for self-hosted runners and both started at 01:52:2xZ.
  • docs/make.jl uses deploydocs(; push_preview = true). The PR run logged Deploying preview build ... Deploying: ✔ for pull/97/merge = d7f24a7.
  • The gh-pages history (GET /repos/SciML/FastAlmostBandedMatrices.jl/commits?sha=gh-pages) has a1bb9a2 2026-10-14T01:54:41Z build based on d7f24a7. That is the PR preview commit, landed in the same second the main run made its local commit 2a798c4. The main run's push 1 s later was a non-fast-forward, so it was rejected.
  • After that, the tag run for v0.1.14 (https://github.com/SciML/FastAlmostBandedMatrices.jl/actions/runs/38499425926) deployed 1b74a36 build based on 578e7f2 successfully. The previous main Documentation run (38326969146) also passed.

So this is a one-off race between concurrent deploys. It is not a bug in this repo or in a dependency. Impact: dev/ on gh-pages was not refreshed for 578e7f2. That commit only bumps the version, so the content is unchanged. Re-running the job fixes it.

Possible hardening, not done here because it is in the shared workflow: the reusable SciML/.github/.github/workflows/documentation.yml@v1 could serialize gh-pages deploys with a concurrency group, or retry the push. Documenter itself does not retry a rejected push.

Existing PR: none (searched open PRs for gh-pages/documentation). Fix made: none. No in-repo fix is warranted.


2. format-pr: julia: command not found (FIX-READY)

Error (job "build", https://github.com/SciML/FastAlmostBandedMatrices.jl/actions/runs/38489959826/job/115612559840, step "Install JuliaFormatter and format"):

Runner name: 'self-hosted-4vcpu-16gb-8q5rj-runner-h6fkl'
##[error]Process completed with exit code 127.

Cause (read in logs): .github/workflows/FormatPR.yml declares runs-on: ubuntu-latest and runs julia -e ... with no julia-actions/setup-julia step. It only works when the job gets a GitHub-hosted ubuntu-24.04 image, which ships with Julia. For example, the passing run 38327648800 used Image: ubuntu-24.04 and Julia 1.13 from the image. When the job is assigned to an org self-hosted runner, Julia is not on PATH. This is intermittent and long-standing, not a new regression. Every failed format-pr run among the last 40 has the same error on a self-hosted runner:

The missing setup step dates back to the commit that introduced the workflow (786de00, "Setup CI", per the PR #88 bisect).

Second problem with this workflow (confirmed by running): the repo has been formatted with Runic since PR #45, and format-check (SciML/.github/.github/workflows/runic.yml@v1) enforces it. FormatPR runs JuliaFormatter with default style, so the PR it keeps refreshing, #67 "Automatic JuliaFormatter.jl run", rewrites the code into a style that fails Runic:

$ # main (578e7f2)
$ julia +1.12 --project=@runic -m Runic --check benchmark docs src test
main exit=0

$ # PR #67 head (JuliaFormatter output), extracted to scratch/pr67
$ julia +1.12 --project=@runic -m Runic --check --diff benchmark docs src test
pr67 exit=1
-struct DisjointRange{T<:Integer,R1<:AbstractUnitRange{T},R2<:AbstractUnitRange{T}} <:
-       AbstractVector{T}
+struct DisjointRange{T <: Integer, R1 <: AbstractUnitRange{T}, R2 <: AbstractUnitRange{T}} <:
+    AbstractVector{T}
...
-        return @inbounds d.r2[i-n1]
+        return @inbounds d.r2[i - n1]

(full diff: scratch/runic_pr67.txt). When the workflow does pass, its output is a PR that would turn format-check red if merged. Runic suggestions on PRs already come from RunicSuggestions.yml.

Existing PRs:

Test before/after: this is a scheduled CI workflow, so no Julia test can cover it, and I could not run the GitHub Actions job locally. Before the fix, the workflow exists and fails whenever it lands on a self-hosted runner (6 runs listed above). When it does succeed, it produces Runic-violating output (Runic --check exit 1 on PR #67, shown above). After the fix, the workflow is gone, so the scheduled run that failed no longer exists. Formatting is still enforced by format-check (Runic --check exit 0 on main, shown above).

If you'd rather keep an automatic formatting PR, the alternative is to replace FormatPR.yml with a Runic-based job that has a setup-julia step. I did not do this because it is a design choice for you to make.


Checks not run

  • I could not exercise the GitHub Actions workflows locally, so there is no actionlint or act run.
  • I did not run the package test suite: the only change is deleting a CI workflow, and Tests are green on main.

Links


🤖 Posted by an AI agent — harness: Devin CLI 3000.11.3 (fix), Claude Code 2.1.285 (PR) · model: fusion-claude-opus-5-5-high-sidekick-swe-2-medium / claude-opus-5-5
Conversation: local Claude session 3c311569-dda6-4687-bc9f-65febb212c33 (fleet master)

🤖 Generated with Claude Code

The package is formatted with Runic and enforced by the format-check
workflow. FormatPR.yml ran JuliaFormatter with default settings, so the
PR it opens (SciML#67) reformats code into a style that fails Runic's check.

It also called `julia` without provisioning it; when the `ubuntu-latest`
job lands on an org self-hosted runner without Julia it fails with
`julia: command not found` (exit 127), which turned the scheduled main
run red (e.g. run 38489959826). Runic formatting suggestions on PRs
come from RunicSuggestions.yml.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Devin <noreply@cognition.ai>
Agent-Harness: Devin CLI 3000.11.3
Agent-Model: fusion-claude-opus-5-5-high-sidekick-swe-2-medium
Agent-Session: local headless run, log /Users/chrisrackauckas/sandbox/master/green/SciML_FastAlmostBandedMatrices.jl/log.txt
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review October 14, 2026 23:49
@ChrisRackauckas
ChrisRackauckas merged commit 78bd97f into SciML:main Oct 14, 2026
20 checks passed
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.

1 participant