Repository navigation
Commit 05552d8
Resolve the formatter in a temp project, not the runner's shared depot (#29)
`Pkg.add(name="JuliaFormatter", version="2")` ran with no active project, so it
resolved into whatever environment the runner happened to have. The compat
bounds already sitting in that depot cap the resolve, which makes the installed
version a property of the machine rather than of this file: the same commit
resolved 2.3.2 on a self-hosted runner and 2.10.1 on a GitHub-hosted one.
Formatting differs across 2.x minors, so format-check returned a verdict on the
runner, not on the diff. A leftover ITensorFormatter in a shared depot also
pinned JuliaSyntax to 0.4 and turned the install into a hard resolve failure,
which presents as a flake because it depends on which runner you land on.
`Pkg.activate(; temp=true)` before the add is the fix, and the install and the
check are now one process so the environment cannot expire between them.
The version still floats, deliberately. A pin converts each new release into
permanent debt in every calling repo and rots while the ecosystem moves; the
answer to a release that reflows files is to adopt it and reformat. Isolation
is what this check needed to be reproducible, and it is orthogonal to the
version spec.
Added an assertion that the loaded version is the one the temp project holds.
`using` silently falls back to the depot's default environment when the active
project does not declare the package, which has bitten this fleet twice through
an env that looked right by its name.
The failure message now names the version CI resolved and gives the same
floating spec in a temp env, with `overwrite=true` and a retry loop, since
`overwrite=false` is a check rather than a fix and one pass does not always
converge.
Runs the script through `shell: julia --color=yes {0}` rather than `julia -e`,
which is how lab-sotashimozono/.github has run this check for months. The
failure message has to contain a Julia command with its own quotes, and that
does not survive nesting inside `-e '...'`. The two orgs' scripts are now
byte-identical, so a fix to one is a copy-paste to the other.
Verified locally on both arms rather than by CI round trip: a formatted tree
exits 0 with the success line, a misformatted one exits 1 with the message.
The YAML and the embedded script both parse.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 23ea763 commit 05552d8
1 file changed
Lines changed: 32 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
3 | 13 | | |
4 | 14 | | |
5 | 15 | | |
| |||
13 | 23 | | |
14 | 24 | | |
15 | 25 | | |
16 | | - | |
17 | | - | |
18 | | - | |
| 26 | + | |
| 27 | + | |
19 | 28 | | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
25 | 39 | | |
26 | | - | |
27 | | - | |
28 | | - | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
0 commit comments