Repository navigation
Let the formatter float again, keeping the clean env that actually fixed it - #39
Merged
Merged
Conversation
…xed it `JF_VERSION: '2.10.1'` was added when the check was still nondeterministic, on the theory that a pin was what made it reproducible. The 2026-07-25 diagnosis had already shown otherwise: the same commit resolved 2.3.2 on rosina and 2.10.1 on a laptop because `Pkg.add` was landing in the runner's shared depot, whose compat bounds capped the resolve. `Pkg.activate(; temp=true)` fixed that, and it stays. The pin rode along and has been standing debt in 27 callers since. A pin also rots in a way this fleet cannot see: the pinned version is what every repo is formatted against, so the longer it sits the larger the eventual reflow. It has now sat from 2.10.1 to 2.14.0. Measured before removing it, by resolving both versions in a temp env and running `format(dir; overwrite=false)` over a shallow clone of all 27 callers: 26 are clean under the pin today, and 13 of those reflow under 2.14.0. So this is not free, unlike the same change in QAtlasHub/.github where every caller was already at 2.14.0. The diff is redundant semicolons and nothing else. Classifying every removed line across the thirteen: 654 are a trailing `;` at end of statement (`sw = Sweeps(6);` to `sw = Sweeps(6)`), and 61 are a bare `;` alone on a line, an empty statement 2.10.1 emitted itself. Nothing falls outside those two, which is why the diffstats are not line-for-line. Largest is FibVUMPS at 97 files; eight of the thirteen are under ten lines. Order matters: this must merge before the reformats, or each reformat PR is red against the pin it is meant to move past. The thirteen are ComplexTimeEvolution, ComplexTimeExperiments, FibVUMPS, ITensorcMPS, ITensorModels, OnoResponseMPS, ParaLinearAlgebra, ParameterizedITensor, ParameterizedITensorMPS, ReducedEnvExperiments, SingleSiteDMRG, StructuredITensors and ThermalMPS. AdiabaticPumpExperiments is red under both and is a separate pre-existing failure. Also asserts that the loaded JuliaFormatter is the one the temp project holds. `using` falls back to the depot's default environment when the active project does not declare the package, which has silently formatted this fleet at 2.4.0 twice, once from a throwaway env and once from a named `@format` env. The failure message now names the resolved version and uses `overwrite=true` with a retry loop, since `overwrite=false` is the check rather than the fix and a single pass does not always converge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
sotashimozono
force-pushed
the
unpin-formatter
branch
from
September 13, 2026 13:43
15dd190 to
94a853d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
JF_VERSION: '2.10.1'was added when the check was still nondeterministic, onthe theory that a pin was what made it reproducible. The 2026-07-25 diagnosis
had already shown otherwise: the same commit resolved 2.3.2 on rosina and
2.10.1 on a laptop because
Pkg.addwas landing in the runner's shared depot,whose compat bounds capped the resolve.
Pkg.activate(; temp=true)fixed that,and it stays. The pin rode along and has been standing debt in 27 callers since.
A pin also rots in a way this fleet cannot see: the pinned version is what
every repo is formatted against, so the longer it sits the larger the eventual
reflow. It has now sat from 2.10.1 to 2.14.0.
Measured before removing it, by resolving both versions in a temp env and
running
format(dir; overwrite=false)over a shallow clone of all 27 callers:26 are clean under the pin today, and 13 of those reflow under 2.14.0. So this
is not free, unlike the same change in QAtlasHub/.github where every caller was
already at 2.14.0.
The diff is redundant semicolons and nothing else. Classifying every removed
line across the thirteen: 654 are a trailing
;at end of statement(
sw = Sweeps(6);tosw = Sweeps(6)), and 61 are a bare;alone on a line,an empty statement 2.10.1 emitted itself. Nothing falls outside those two, which
is why the diffstats are not line-for-line. Largest is FibVUMPS at 97 files;
eight of the thirteen are under ten lines.
Order matters: this must merge before the reformats, or each reformat PR is
red against the pin it is meant to move past. The thirteen are
ComplexTimeEvolution, ComplexTimeExperiments, FibVUMPS, ITensorcMPS,
ITensorModels, OnoResponseMPS, ParaLinearAlgebra, ParameterizedITensor,
ParameterizedITensorMPS, ReducedEnvExperiments, SingleSiteDMRG,
StructuredITensors and ThermalMPS. AdiabaticPumpExperiments is red under both
and is a separate pre-existing failure.
Also asserts that the loaded JuliaFormatter is the one the temp project holds.
usingfalls back to the depot's default environment when the active projectdoes not declare the package, which has silently formatted this fleet at 2.4.0
twice, once from a throwaway env and once from a named
@formatenv.The failure message now names the resolved version and uses
overwrite=truewith a retry loop, since
overwrite=falseis the check rather than the fix anda single pass does not always converge.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com