Remove ControlPlots; migrate plotting to Makie + MakieControlPlots#253
Merged
Conversation
Redone fresh on current main (the original PR #248 branch predated main's NeuralFoil reorganization into the AirfoilAero/ObjAdapter submodules and could not be merged cleanly). - Remove the ControlPlots extension, examples_cp/, and the PythonCall/Matplotlib setup (bin/install_controlplots, CondaPkg LocalPreferences defaults). - Collapse the PlotBackend/MakieBackend/ControlPlotsBackend/set_plot_backend\! dispatch; plotting works once a Makie backend and MakieControlPlots are loaded. Drop the never-implemented plot_circulation_distribution. - VortexStepMethodMakieExt now triggers on ["Makie", "MakieControlPlots"] and renders plot_section_polars through MakieControlPlots.plot; everything else stays native Makie. - Examples/docs/tests load GLMakie/CairoMakie + MakieControlPlots. - Regenerate the 1.11 and 1.12 default manifests; drop dead :PyCall Aqua ignores. Validation (headless, Julia 1.12): plotting 58/58, Aqua 10/10; package loads on 1.11 and 1.12 with the regenerated manifests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
MakieControlPlots activates GLMakie on load, whose OpenGL init fails on the headless Linux runners (no DISPLAY). Install xvfb + libgl1-mesa-dri and run the Linux test jobs under `xvfb-run -a`; give the docs job a background Xvfb via DISPLAY. Windows/macOS runners keep their own display context (no prefix). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
test/test_setup.sh runs every example via menu.jl --run-all, which now loads MakieControlPlots (→ GLMakie). Add libgl1-mesa-dri and run the script under xvfb-run so GLMakie can initialize headlessly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Resolves conflicts from #254 (crease_frac routing, manifest --update tooling): - bin/install: kept #254's version, re-removed the ControlPlots/examples_cp/ PythonCall/CondaPkg setup; the Makie extension smoke check now loads GLMakie + MakieControlPlots. - Manifest-v1.11/1.12 defaults: reseeded from #254's manifests and re-resolved to swap the plotting weakdeps (ControlPlots/PythonCall -> MakieControlPlots). - setup-test.yml: test_setup.sh already wraps julia in xvfb-run internally, so drop the outer xvfb-run wrapper (it caused nested "Xvfb failed to start"); keep libgl1-mesa-dri. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ic wiring With ControlPlots gone there is only one plotting backend family, so examples no longer need to stay backend-agnostic for a separate menu_cp() launcher. Every plotting example now imports GLMakie + MakieControlPlots directly (bench/cleanup don't plot, so they don't). Remove the now-meaningless "backend-agnostic" check from test/test_setup.sh and stale two-backend comments in test_plotting.jl. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
MakieControlPlots exports its own JLD2-based `save`, which clashes with Makie's figure `save` once an example does `using GLMakie` + `using MakieControlPlots`. Qualify the raw figure-save calls (ram_air_kite, V3_neuralfoil) as GLMakie.save. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GLMakie's PrecompileTools workload creates a screen (glfwInit), which fails on the headless macOS/Windows CI runners (no GPU/display, and xvfb is Linux-only). Loading MakieControlPlots pulls in GLMakie, so gate the plotting test include on Sys.islinux(); the Linux jobs run them under xvfb. All other tests still run on every platform (Windows showed 5111 passing with only the plotting set erroring). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Supersedes #248, redone fresh on current
main. The original #248 branch predated main's NeuralFoil reorganization into theAirfoilAero/ObjAdaptersubmodules (and carried the pre-squash NeuralFoil history), so it could not be merged cleanly — this is the same intent re-applied as a single clean commit on top of current main.Changes
ControlPlotsextension,examples_cp/, and thePythonCall/Matplotlib setup (bin/install_controlplots, CondaPkgLocalPreferencesdefaults).PlotBackend/MakieBackend/ControlPlotsBackend/set_plot_backend!). Plotting works as soon as a Makie backend andMakieControlPlotsare loaded. Dropped the never-implementedplot_circulation_distribution.VortexStepMethodMakieExtnow triggers on["Makie", "MakieControlPlots"]and rendersplot_section_polarsviaMakieControlPlots.plot. Everything else (geometry, distributions, 3D surfaces, airfoil grids) stays native Makie.GLMakie/CairoMakie+MakieControlPlots.:PyCallAqua ignores.Validation (headless, Julia 1.12)
🤖 Generated with Claude Code