Skip to content

Breaking release 0.25 - #5484

Open
ffreyer wants to merge 105 commits into
masterfrom
ff/breaking-0.25
Open

Breaking release 0.25#5484
ffreyer wants to merge 105 commits into
masterfrom
ff/breaking-0.25

Conversation

@ffreyer

@ffreyer ffreyer commented Jan 3, 2026

Copy link
Copy Markdown
Collaborator

Description

Breaking PRs to merge: (Some of these may not need to be part of a breaking release. I'm rather quick to call something breaking)

Consider:

PRs to merge outside of this:

Fixes:

TODO:

  • fix inconsistent shading in SSAO test (refimages currently have a more extreme case) (is this really fixed or is it still inconsistent?)
  • maybe cleanup typos that have been building up
  • check that x/y/zlims!() still work the same in all axis types, specifically after interactively changing them
  • add test for concurrent ComputePipeline usage, document potential issues
  • make sure all connected issues are linked here so they get closed
  • consider making export skipping in recipes user facing, i.e. add documentation and improve syntax (e.g. kwarg-like export = true/false) added to master by Julius
  • update Block docs
  • Consider refactoring SliderGrid to complex recipe style block and remove/deprecate @forwarded_layout
  • fix or remove short_unit, rework suffix to work with different label string types

Checklist

  • cleaned up CI changes (run in prs based on this)

@github-project-automation github-project-automation Bot moved this to Work in progress in PR review Jan 3, 2026
@MakieBot

MakieBot commented Jan 3, 2026

Copy link
Copy Markdown
Collaborator

Benchmark Results

SHA: 2a46252d5298493f1a16f247333bf0a3171ee404

Warning

These results are subject to substantial noise because GitHub's CI runs on shared machines that are not ideally suited for benchmarking.

GLMakie
CairoMakie
WGLMakie

* move plots from elements to entries

* minor cleanup

* fix test failures

* refactor plot extraction to be less breaking

* tweak test to check `plots => Element` syntax

* fix datashader again

* update docs

* update changelog

* swap out scatter for stem to test generated legend entry

* fix format

* note change in legend element types

---------

Co-authored-by: Simon <sdanisch@protonmail.com>
ffreyer and others added 22 commits February 14, 2026 15:10
* use compute graph

* get infinite bars working

* allow PolarAxis to work

* try to generate acceptable limits

* remove unused function

* fix missing else branch

* allow fillto and barwidth as vectors

* fix direction

* fix fillto

* overwrite fxaa for labels

* handle log transforms explicitly

* format

* restore arg type check

* don't need Makie. in Makie

* update changelog

* revert passthrough to text

* add some sanity checks

* formatting
* pull tweaks from #4689

* pull context validation from #4689

* handle texture atlas explicitly + fix errors

* explicitly clean up shaders & programs

* handle GLBuffer, GLVertexArray, Postprocessors

* handle Texture explicitly

* fix SSAO error

* test cleanup

* add some sanity checks

* fix tests

* cleanup finalizers, free(), unsafe_free()

* skip GLFW initialized assert for CI

* update changelog

* fix freeing of unused uniforms & cleanup unused pattern_sections

* count and check failed OpenGL cleanup

* try to handle GLFW CI failure

* try fix CI

* require context for Texture and GLBuffer in most cases

* fix incorrect uniform cleanup

* CI please

* fix typo

* try handling GLFW init errors differently

* maybe just destroy the window if the context dies?

* fix typos

* maybe also cleanup dead screens when trying to reopen?

* tweak require_context to maybe catch error earlier

* switch before requiring

* avoid requiring context for get_texture and thus robj cleanup

* treat scene finalizer

* Treat scene finalizer in texture atlas too

* add missing passthrough

* move object deletion test to end

* warn on dead context

* avoid the last few current_context() calls

* fix scatter indices

* start reworking render pipeline

* move gl part of Framebuffer to GLAbstraction

* add show()

* fix incorrect rename

* change copy-to-screen to a Blit operation

* fix tests

* add Render step

* fix SSAO

* add SortPlots task and cleanup render_frame

* use dedicated framebuffers

* fix tests

* fix depthbuffer()

* simplify glDrawBuffer(s)

* add prototype for abstracted RenderPipeline

* switch to Vector of connections

* split up multi-step stages

* rename Format to avoid name collision

* collect framebuffer buffers in array, prepare some utilities

* integrate GLMakie with new render pipeline (prototype)

* fix SSAO

* fix FXAA

* fix picking, use config.ssao

* try recreating Framebuffer instead of removing attachments

* some cleanup & performance tweaks

- reuse buffers when regenerating gl render pipeline
- switch Connection from Dict to Vector
- inline is_compatible and promote_type
- cache pipeline

* try to get some debug info out of CI

* fix FXAA in CI?

* add changelog entry

* cleanup GLAbstraction

* cleanup, add extras to format, usability improvements

* add stage attributes, format extras

* add pipeline show and fix OIT

* add GLRenderPipeline

* add construct and reconstruct, unify input buffer names

* use reconstruct to reuse postprocessor render objects

* reuse GLRenderPipeline & be a bit more careful with caching

* temp fix SSAO clearing bug

* add more destroy!() to maybe fix CI

* is it buffer reuse?

* is it reconstruct?

* Revert to green CI

* Revert revert + undo debugging

* add some more context switches, idk

* add more context switches

doesn't fix the issue but maybe helps?

* cleanup enum -> name

* fix plots not displaying with ssao = true in non SSAO pipeline

* add test to verify all render stage parameters render

* fix tick test

* fix test

* switch config to include (Makie) render pipeline & cover all settings

* fix docs

* test a few other pipelines

* free more things

* some performance tweaks

* some more safety tweaks

* add tests for Makie render Pipeline

* revert fix attempts & assert correct context instead

* use enum for type handling to avoid runtime dispatch

* remove Connection type for better performance

* cleanup rebase

* minor cleanup

* put finalizers behind debug constant

* don't skip observable cleanup in free

* cleanup require_context

* fix typo

* fix test errors

* fix typo

* rename OIT buffers

* fix & test connecting two already connected nodes

* add experimental GUI

* remove pipeline caching

* turn on ci against rebase branch

* fix freeing of reused framebuffer attachments, fix tests

* git pls

* fix tests

* improve default placement of stages in GUI

* fix SSAO

* add test for custom render pass

* get renderpipeline to persist from activate!()

* fix missing to_value

* fix another incorrect free

* bit of convenience

* clean up

* fix errors

* fix freeing of GLBuffer Observables

* rename Pipeline -> RenderPipeline

* document rendering in Cairo, GL and WGLMakie

* cleanup unsafe_free

* cleanup called_from_finalizer & add comments to implied functions

* some cleanup

* fix more tests

* merge fixes

* revert ci changes

* try fix docs

* inline texture parameters in BufferFormat

* maybe fix docs?

* update tests

* maybe with imports?

* maybe no f,a,p?

* rework output buffer handling

* fix errors

* cleanup some comments

* move render pipeline docs to dev docs

* fix docs?

* does this work?

* try to fix docs

* update comments

* remove framebuffer attachment reuse logic

* merge fixes

* fix changelog entry

* run formatter

* remove testing/experimental pipelines

* update/clarify some comments

* add some helper functions, fix show

* test a bunch of cases for generate_buffers()

* some more cleanup

* rename FramebufferFactory

* document some more internals

* formatting

* prototype depth and stencil buffers

* split up the RenderPipeline file (only adds comments)

* add intermediate type

* prepare for MSAA

* run formatter

* allow unset inputs

* depth without stencil works now, so use it

* update tests

* fix broken cleanup

* format

* update docs

* swap order of `idx => name` in stage inputs/outputs

* fix test

* fix docs?

* add nameless depth buffer lookup, fix test

* fix docs?

* fix typo

* does this fix docs?

* fix typo

* fix show error of empty framebuffer

* add flag to stop buffer reuse

* add docstrings to default stage constructors

* add minimal render pipeline for reference and testing purposes

* show stage indices too

* add mid-render colorbuffer function for debugging

* cleanup scene setup a bit

* don't resize buffers centrally to avoid hard coding sizes

* update docs, refimg test, formatting

* allow iterating GLRenderPipeline

* fix test errors (missing resize) and make resizing an interface function

* rename Stage -> RenderStage for consistency

* rename AbstractRenderStep -> GLRenderStage for consistency

* fix test

* fix test

* replace step with stage

* Allow GLMakie render objects to render in different ways (#5436)

* prototype renderobject variants

just a few lines of code, nothing big

* some cleanup

* transition to using variants for render stages

* remove compilation-only attributes from uniforms

* fix name

* cleanup debug prints

* clean up vertex array constructor

* fix a bunch of test failures

* fix marker updates (broken on master btw)

* fix color handling

* fix empty indices in postprocessors

* fix updates

* restore observable tracking for render stages

* fix shading compile flags

* fix volume backlight

* fix transparency

* fix render pipeline test

* break up render() function for easier reuse

* simplify renderobject creation for post processors

* fix undefined Screen

* implement regeneration of render instructions, add test

* default indices to vertex buffer length dynamically

* some cleanup

* avoid redundant update after init

* run CI

* improve hash performance of shader caching

* improve mustache2replacement performance

* improve type stability in shader compilation

* rework pre/postrender init to maybe improve type inference, directly create strictly typed view dict

* make render_in_stage type stable

* cache GLSL version number

* avoid unnecessary specialization

* cache Symbol(string)

* avoid merging uniform and buffer dicts

* fix tests

* formatting

* partially fix type stability of default_shader

* cache version string too

* cache buffer glsl type names

* move default prerender setup to render stages

* Improve error

* fix undefined normals in mesh

* fix refimg test

* fix screen config compat?

* don't ignore directly set render_pipeline

* shouldn't need closeall() for recompilation anymore

---------

Co-authored-by: SimonDanisch <sdanisch@protonmail.com>
* prototype infrastructure for direction, orientation and repeated dims

* simplify if block a bit

* match argument_dims default to old behavior

* fix typo

* add infrastructure for dim_converts in axis labels

* control units in tick labels from Axis

* fix some errors with new Axis dim_converts

* add argument_dim_kwargs

* run add_attributes first so that dim_converts can include them

* fix/update hvlines

* get heatmap, surface, contour, contourf working

* update hist

* handle image

* remove dynamic unit prefixes

* update band, errorbars, rangebars, hspan, vspan

* update remaining basic_recipes plots that should work

* update stats recipes

* diy missing dim_convert discard

* cleanup print

* avoid errors for empty rich text

* fix label typing

* fix voronoi 3 args, update timeseries

* add tests

* fix boxplot, 3D contour

* fix 3D surface convert, test remaining primitives

* fix log units

* remove unused code

* fix triplot/poly conversion

* revert deleted convert_arguments but remove recursion

* fix empty rich text properly

this was easier than I though

* fix qqplot/qqnorm/early convert kwargs application

* fix "]" from formatter ending up in superscript after a "^"

* fix load order

* rename attribute + docstrings

* update Axis3

* add long units

* fix Int error in Date resampling

* fix/update tests

* revert to late attribute adding and only add required attributes early instead

* fix tests missing parent_is_scene

* revert unnecessary change to add_convert_kwargs!()

* fix PlotSpec

* remove unused `try_dim_convert` and `should_dim_convert` (keep name for compat)

* drop unnecessary method

* update docs

* run formatter

* minor cleanup

* get point-like data working

* remove prints

* explicitly exclude Axis3D plots

* allow ranges in argument_dims()

* update more point like arguments

* fix getindex(nothing, idx)

* fix failing dim converts tests

* fix empty array application

* fix convert_arguments tests

* fix tooltip

* fix annotations

* fix tooltip

* make `force_dimconverts` settable to fix Axis3

* fix mesh

* fix tests

* fix docs

* avoid converting non data space

* improve documentation of conversion logic and steps

* add refimg for label attributes

* avoid need for ::Automatic in show_dim_convert_in_...()

* allow early conversions when dim converts are forced (+ some restructuring)

* add tests for point-like data & fix conversions

* run formatter

* fix and test band with vectypes

* fix docs?

* default units to axis labels only

* default multiple point-like arguments

* make sure every recipe has dim convert exit paths

* some cleanup + docstrings

* fix dodgy docs

* add section about conversion target types to recipe docs

* update changelog

* format

* fix typos

* fix multihist vector of vector args

* fix tests
* chore(changelog): Update CHANGELOG.md

* test: Add failing test for issue #1939

* fix!: `merge!` precedence and attribute precedence fixes

- Update `merge!` function to align with the right precedence which is
  the standard for `Base.merge!`
- Add `leftmerge!` function for updating immutable struct attribute
  fields, where shadowing cannot be used
- Reorder the arguments where the original wrong precedence `merge!` was
  used to use the correct precedence `merge!` implemented in this commit
  without change in output
- Use `merge!` instead of `merge` in `plot_attributes` function to avoid
  `deepcopy` and improve performance
- Fix precedence in `default_attribute` function

BREAKING: `Base.merge` and `Base.merge!` now has the opposite precedence
for `Attributes` arguments

* perf: Remove the check for the existence of the key in target

The key is present in the branch because, we already checked for the
opposite in a previous branch.

* fix: Remove the unused `merge_attributes!` function

---------

Co-authored-by: Frederic Freyer <frederic481994@hotmail.de>
* Blocks as complex recipes

* fix incomplete init due to notify

* support externally defined Block

* support indexing and on-demand layout generation

* support auto axis via `plot(block[i, j], ...)`

* add lazy `block.blocks`

* add plots tracking

* add some documentation

* ignore undefined block.layout for now

* fix block deletion errors

* avoid .val

perfectly safe, surely

* remove/fix more notify's

* fix dim_converts

* fix some more issues

* fix Dates

* fix block cleanup

* fix textbox size

* fix tick updates for unit changes

* fix unit tick updates with dispatch instead

* fix infinite loop in menu

* fix IntervalSlider size

* fix Axis3 limits

* fix textbox realigned on delete & try to clarify code

* fix html widgets ?

* remove unused plot type from _register_input_arguments!()

* implement argument conversions for blocks

* make notify(computed) actually do something

* auto-export blocks

* fix code order

* export `@Block`

* auto figure for blocks

* bring back attribute types inits

* format

* add changelog entry

* fix error

* fix tests

* fix docs error?

* split argument handling to make it easier to reuse

* add some convenience for map! and register_computation!

* update docs

* fix Axis in complex recipe block not initializing correctly

* fix compute errors again

* don't type restrict cycled recipe attributes

* fix poly strokecolor type changes

* fix box strokecolor type changes

* add `update!(block, ...)`

* allow (xs, function) conversions in blocks

* clean up error

* add test for complex recipe + block updates

* ok maybe not repr()

* format

* fix WGLMakie

* fix type change error in CairoMakie heatmap (Range <-> Vector)

* fix error

* simplify code

* remove block.plots

* don't allow layout to be added after init and improve show()

* reorganize code, fix attribute autocomplete, document attribute converts

* fix docs

* set up SpecApi in Blocks

* add getindex and setindex for block arguments

* allow switching between BlockSpec and GridLayoutSpec

* add test for SpecApi in blocks

* format

* allow empty/no attributes and no begin ... end block

* allow convert_arguments to not return a spec *tuple*

* fix nested GridLayout deletion in SpecApi (+ nicer show methods)

* add `Container` block as an implementation for `Block(spec)` and GridLayout wrapper

* fix autolimits (same value update does not trigger limit update)

* update SpecApi docs

* format, fix docs?

* add a couple tests

* avoid double update

* add docs example as a refimg test

* fix update before display

* rename FigureAxis to FigureBlock (with fallback)

* fix getindex with side

* fix format

* add first/lastindex

* fix merge

* more thorough Observable compat to fix Axis3 updating & other potential issues

* format

* fix Union conversions

* fix ticklabelspace update

* fix legend layout update being one step behind

* fix incomplete layout of Axis

* fix Textbox not reacting to placeholder

* fix Menu hover/inactive color not triggering updates

* rework test to include updateless reference

* update changelog

* format

* try fix test inconsistencies

* try sleep

* add tick events to CairoMakie so Toggle animation can finish

* fix typo, reduce sleep time
* experiment with simulated nesting

* don't reuse the key array so graph views can be accessed multiple times

* adjust function chain so values can cause nesting

* convert Attributes() in inputs to nesting

* update old axis3d!

* remove print

* fix per-segment linewidths not working

* fix scaling

* fix static value access in axis3d

how did this even work?

* fix nested setindex/setproperty

* fix tests

* add compat for `plot.attributes[].entry`

* add some tests

* improve some errors, printing

* improve interfacing with nested nodes + tests + docs

* fix format

* add changelog entry

* add iterate for ComputeGraphView

* format

* allow passthrough of nested nodes and ComputeGraphViews + test

* format

* restore model, transform_func filtering

* fix variable name

* get nested merging to work

* did I mention Observables make things more difficult?

* format

* add more careful indexing for old axis

* add sizes to size missmatch warning in refimages

* clean up merge_without_obs

* add a way to create empty nesting layers

* fix and test add_input!() with callback

* fix  nested update!(), test updating

* fix toggle anim in test

* rename to_graph -> root

* use local name for callbacks instead of the full name

* Revert "use local name for callbacks instead of the full name"

This reverts commit 538de00.

* fix and test plot attributes from theme

* format
* refactor LineAxis, Axis to ComputeGraph

* don't run initialize_block! twice in precompile

* deal with nothing

* fix some stuff

* run benchmark too

* fix recursive Observable updates discarding notifies

* more locks for safety

* fix GLMakie not updating on just plot insertion

* Add set_type!()

* add flag to force updates to propagate in Inputs

* add ExplicitUpdate wrapper to overwrite update propagation behavior

* improve some errors

* allow Block attribute init to be extended

* split up scenearea node so it's usable with computations

* move limits to compute graph

* minor test fixes

* guard against infinite recursion in axislinks

* fix incorrect bbox in protrusions

* fix dim converts

* fix linked layout spec not initializing links

* fix axis label translation

* fix recursion loop in Colorbar protrusion

* minor test cleanup

* default linked axes in SpecApi to limit union

* fix autolimits with linked axes (same value reset)

* remove not yet defined type

* fix type to Float64

* fix type in test

* fix some things that were probably wrong

* reorder code to skip an Observable

* cleanup leftover Observables in LineAxis

* more LineAxis cleanup, update tight_ticklabel_spacing!()

* avoid checking boundingboxes for each dimension

* fix 0 width limits limits

* allow mark_dirty!() to exit early by having mark_resolved!() resolve parents

* avoid recursive lock, use `@lock`

* move old reset_limits to Axis3

* fix autolimits, same value reset in Axis3

* fix `set_type!()` for inputs

* fix PolarAxis autolimits/same value limit resets

* minor cleanup

* benchmark against breaking

* convenience + docstrings for forced_update and ExplicitUpdate

* test forced_update, ExplicitUpdate, set_type!()

* improve and test recursively connected Observable handling

* format

* restore xlims!()/ylims!()/limits!() setting linked axis limits

* don't trigger two updates when calling limits!()

* fix limit errors

* more compute docs

* update changelog

* fix categorical update tests?

* more sleep for WGLMakie

* turn mark_dirty skips back on

* try to optimize

only the init -> set_type change for attributes seems to be relevant...

* fix state corruption if mark_dirty!() runs during multi-graph resolve

adjusted from DataInspector pr

* make directly calling mark_dirty!() safer

* graphs can be connected in a loop

* move some of the nesting code

* make mark_dirty!() irrelevant to resolve and refactor input passthrough to go through a single computation

(1) should fix multi-graph state desync
(2) should fix multi-graph value desync
maybe without destroying WGLMakie this time?

* WGLMakie bandaid?

* give up and just lock globally

* fix error printing

* remove input bus

* format

* fix sanity checks

* revert benchmark base
* try documenting PointBased arguments in a reusable way

* Add utils for getting applicable methods + docs

* update basic_plots argument docs

* update some more docstrings

* update band, barplot, bracket, contourf, contour, contour3d

* update datashader, errorbar, rangebar, hvlines, hvspan

* I forgot lists needed indention

* refactor argument_docs() helper

* update pie, raincloud, scatterlines, spy, stairs

* switch to plural by default

* rest of the basic_recipes folder

* update stats plots

* why does this error?

* revert failing use of conversion_trait

* fix typo

* simplify code a bit

* recover conversion_docs function

* add some warnings

* run formatter

* fix missing `; attributes`

* fix indention

* tweak wording

* first prototype

* fixes

* prototype for generating docs completely from the repl docs

* small fixes

* restructure docs

* cleanup

* move plot and attribute examples to proper place and use normal docstring for argument docs

* fix doc build

* fix no docstring case

* fix user docs

* small tweaks

* fix argument docs and bring it into one format

* make runic happy

* fix contour examples

* tweaks and update all remaining plots to new format

* fix tests and more tweaks

* I guess we dont return a figure

* bit of cleanup

* simplify `help()` function

* refer to help() or `?Plot.attribute`

* add attribute grouping

* why no docs? plots bad?

* fix errors

* fix missing refs?

* re-add overview.md, enable all plots except timeseries

* add grouping for online docs

* move generic arrows docs into 2d and 3d variants

* add autocomplete for `?Plot.attribute`

* minor cleanup for examples

* rename examples header for plot docs

* add output variable for SpecAPi call signature

* add linebreaks to keep argument docs in the observable universe

* clean up some docstrings (description, arguments, examples, attribute groups)

* clean up some more

* cleanup stats plots

* cleanup basic plots/primitives

* restore scatter online docs

* make docstrings more adjustable, add documentation

* update changelog

* formatting

* allow general note in last item

* fix arg docs for `Tuple{...} where ...` types

* add docstring for types_for_plot_arguments

* tighten VecTypes arguments to Points to reduce clutter in docs

* replace var"#..." with their types in type docs

* fix textlabel conversions

* avoid another VecTypesVector target

---------

Co-authored-by: ffreyer <frederic481994@hotmail.de>
@felixcremer

Copy link
Copy Markdown
Contributor

I can tell you, that it is breaking for us in DimensionalData, but it is on us, because we depend on Makie.attribute_names. I came upon this PR while trying to understand what changed and how I might be able to fix it.

Comment thread docs/src/explanations/recipes.md Outdated
@icweaver

Copy link
Copy Markdown
Contributor

Howdy, I forgot to qualify these in the DQ extension:

needs_tick_update_observable(conversion::M.DQConversion) = conversion.quantity
show_dim_convert_in_ticklabel(::M.DQConversion) = false
show_dim_convert_in_axis_label(::M.DQConversion) = true

- needs_tick_update_observable(conversion::M.DQConversion) = conversion.quantity
- show_dim_convert_in_ticklabel(::M.DQConversion) = false
- show_dim_convert_in_axis_label(::M.DQConversion) = true
+ M.needs_tick_update_observable(conversion::M.DQConversion) = conversion.quantity
+ M.show_dim_convert_in_ticklabel(::M.DQConversion) = false
+ M.show_dim_convert_in_axis_label(::M.DQConversion) = true

Is there any chance that this could make it into this PR? I didn't notice the issue until I saw that things like this weren't working as expected:

fig = Figure()
ax = Axis(fig[1, 1])

lines!(ax, (1:10)u"m") # Unit suffix is empty

fig

jkrumbiegel and others added 8 commits August 2, 2026 19:04
…#5726)

Post reference image status via workflow_run

The review-page job cannot post commit statuses for fork PRs because
their token is read-only. Upload the status data as an artifact instead
and post the status from a workflow_run-chained workflow that runs in
the base repository's context once CI completes.

The review page's artifact id is passed through the status data because
upload-artifact with archive: false registers the artifact under the
file name (index.html), so a name lookup would not find it. The chained
workflow validates all fork-controlled fields before use and never
checks out PR code.
@ffreyer

ffreyer commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator Author
- needs_tick_update_observable(conversion::M.DQConversion) = conversion.quantity
- show_dim_convert_in_ticklabel(::M.DQConversion) = false
- show_dim_convert_in_axis_label(::M.DQConversion) = true
+ M.needs_tick_update_observable(conversion::M.DQConversion) = conversion.quantity
+ M.show_dim_convert_in_ticklabel(::M.DQConversion) = false
+ M.show_dim_convert_in_axis_label(::M.DQConversion) = true

Is there any chance that this could make it into this PR?

Yup, done

@ffreyer

ffreyer commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator Author

/benchmark 20

@MakieBot

MakieBot commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

Benchmark Results

SHA: 26891cea60dab5dd7ea5775d46db742e0d71e30d · 20 samples

Warning

These results are subject to substantial noise because GitHub's CI runs on shared machines that are not ideally suited for benchmarking.

GLMakie
CairoMakie
WGLMakie

)

* prototype automatic updates of legend elements after creation

* minor fixes

* move onplot to scene and notify on delete too

* update changelog

* add tests

* format
@ffreyer

ffreyer commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

/benchmark 20

@MakieBot

Copy link
Copy Markdown
Collaborator

Benchmark Results

SHA: 229530bc6559bd2f0bddc222fb9e550f5515de5c · 20 samples

Warning

These results are subject to substantial noise because GitHub's CI runs on shared machines that are not ideally suited for benchmarking.

GLMakie
CairoMakie
WGLMakie

* simplify register_computation! to map!

* add `@nospecialize` to register_computation! callbacks

* fix error deprecation in tests

* other cleanup

* fix benchmark target not defaulting to pr base branch

* fix FieldError
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment