Skip to content

Up minimum compat for v1 to 1.10 (current LTS), test "min" and "lts" on CI#5184

Merged
BeastyBlacksmith merged 3 commits intoJuliaPlots:masterfrom
Ickaser:drop-old-julia
Sep 22, 2025
Merged

Up minimum compat for v1 to 1.10 (current LTS), test "min" and "lts" on CI#5184
BeastyBlacksmith merged 3 commits intoJuliaPlots:masterfrom
Ickaser:drop-old-julia

Conversation

@Ickaser
Copy link
Contributor

@Ickaser Ickaser commented Sep 18, 2025

Description

On the current master, Plots has a Julia compat of 1.6.
However, extensions have been used in Plots for a while; it seems like the burden of loading them on old Julia hasn't been too high. But for #5174, the lack of extensions for dependencies of extensions starts to make maintenance of new code pretty difficult. A possible compat bound for getting the extensions working would be 1.9, but since 1.10 has been the LTS for almost a year now, I propose that gets used as a lower bound for testing and compat on new versions of Plots.

This PR updates that in Project.toml and the CI pipeline (where "lts" and "1" are now the only versions tested on all platforms). I also drop the block in Plots.__init()__ where extensions were loaded with Requires for old versions of Julia.

Corresponding changes have already been made on the v2 branch, it looks like, so this PR doesn't need a companion.

Attribution

@Ickaser
Copy link
Contributor Author

Ickaser commented Sep 18, 2025

@t-bltg I imagine you will want to weigh in on this

@codecov
Copy link

codecov bot commented Sep 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.57%. Comparing base (fa65e7d) to head (ba4be8e).
⚠️ Report is 79 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5184      +/-   ##
==========================================
- Coverage   89.77%   88.57%   -1.20%     
==========================================
  Files          40       40              
  Lines        8780     8884     +104     
==========================================
- Hits         7882     7869      -13     
- Misses        898     1015     +117     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@t-bltg
Copy link
Member

t-bltg commented Sep 18, 2025

@t-bltg I imagine you will want to weigh in on this

I think too that it's reasonable to ask to for julia 1.10 lts as a minimal version for a future Plots version of 1.41, but I'll let @BeastyBlacksmith make the final choice.

@BeastyBlacksmith
Copy link
Member

Can we get rid of Requires.jl then, or is it used for something else still?

@Ickaser
Copy link
Contributor Author

Ickaser commented Sep 19, 2025

The other remaining usage of Requires is for some backend loading behavior. I didn't investigate that too closely, especially after seeing that v2 does away with that altogether (and already has a minimum julia 1.10 compat) in favor of extensions for backends. I could maybe take another look and see what exactly it's doing

@Ickaser
Copy link
Contributor Author

Ickaser commented Sep 19, 2025

This macro is used elsewhere in the file for backend loading:

Plots.jl/src/backends.jl

Lines 96 to 103 in 8d8965d

macro require_backend(pkg)
be = QuoteNode(Symbol(lowercase("$pkg")))
return quote
backend_name() === $be || @require $pkg = $(_plots_deps["$pkg"]) begin
include(_path($be))
end
end |> esc
end

@t-bltg
Copy link
Member

t-bltg commented Sep 20, 2025

Yeah in v2 backend code loading is done through extensions and this might no be easy to backport v2changes into v1.

@BeastyBlacksmith
Copy link
Member

Alright, thanks for checking

@BeastyBlacksmith BeastyBlacksmith merged commit e0e4a1e into JuliaPlots:master Sep 22, 2025
11 of 14 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.

3 participants