Skip to content

Tests.yml: disable force_latest_compatible_version on LTS#75

Merged
mtfishman merged 1 commit into
mainfrom
mf/lts-no-force-latest
Apr 23, 2026
Merged

Tests.yml: disable force_latest_compatible_version on LTS#75
mtfishman merged 1 commit into
mainfrom
mf/lts-no-force-latest

Conversation

@mtfishman
Copy link
Copy Markdown
Member

@mtfishman mtfishman commented Apr 23, 2026

Summary

Skip `force_latest_compatible_version` on the LTS leg of the Tests matrix.
Keep the default (`auto`) on current Julia.

Why

`julia-actions/julia-runtest`'s default is `force_latest_compatible_version:
auto`, which pins each dep to the upper end of its declared compat on bot-
authored PRs — so CompatHelper bumps are actually exercised against the new
version instead of resolving vacuously.

That's the correct behavior on current Julia. On LTS it produces spurious
failures whenever a transitive dep hasn't caught up. Concrete example:
ITensorFormatter.jl#52
widens `JuliaSyntax` compat to `"0.4.10, 1"`, but `JuliaFormatter 2.3`
(the only version compatible on LTS) pins JuliaSyntax to `0.4.10` — forcing
`1` on LTS makes it unsatisfiable. Tests on current Julia pass; tests on
LTS fail as unresolvable.

In many cases we're fine with a bump being aspirational on LTS while
working on current Julia. Without this change those PRs can never merge
unless the entire upstream LTS chain also catches up — which we can't
always control.

Result

  • Current Julia: `auto` as before — bump PRs still verified against the
    claimed latest version.
  • LTS: resolves to whatever's reachable; tests still run, just not
    pinned to the upper-end compat.

`julia-actions/julia-runtest`'s default `force_latest_compatible_version:
auto` fires for bot-authored PRs (CompatHelper, Dependabot), pinning
each dep to the upper end of its declared compat so the bump is
actually exercised. Without it, a CompatHelper PR would resolve to the
old dep version and pass tests vacuously.

That's the right behavior on current Julia, but on LTS it produces
spurious failures whenever a transitive dep pins the newer version out
of reach (e.g. JuliaFormatter 2.3 pins JuliaSyntax to 0.4.10, but the
compat bump widens to "0.4.10, 1" — forcing "1" on LTS makes it
unsatisfiable). Accepting such bumps as aspirational-on-LTS-while-
working-on-current is a common, reasonable policy.

Disable the force on the LTS leg specifically; keep `auto` on current.
@mtfishman mtfishman merged commit 568429d into main Apr 23, 2026
1 check passed
@mtfishman mtfishman deleted the mf/lts-no-force-latest branch April 23, 2026 04:15
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