Breaking release 0.25 - #5484
Conversation
Benchmark ResultsSHA: 2a46252d5298493f1a16f247333bf0a3171ee404 Warning These results are subject to substantial noise because GitHub's CI runs on shared machines that are not ideally suited for benchmarking. |
* 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>
* 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>
|
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. |
|
Howdy, I forgot to qualify these in the DQ extension: Makie.jl/Makie/ext/MakieDynamicQuantitiesExt.jl Lines 25 to 27 in cbb3c6c - 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) = trueIs 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 |
…#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.
Yup, done |
|
/benchmark 20 |
Benchmark ResultsSHA: 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. |
|
/benchmark 20 |
Benchmark ResultsSHA: 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. |
* 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
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)
block.attr[] = block.attr[]andsetfield!(block.attr = ...). May contain update issues due to equal-value discards)units_in_labelto axes, removes autoscaling of units, changes when dim converts apply)show_datainterface, deprecatesinspector_hoverandinspector_clearattributes (TODO?))legendelements(::Plot, legend)no longer sets plots as they were moved out of LegendElement structs)shared_attributes, updating, infrastructure) #5620 (rework attributes infrastructure to handle nested attributes (plot and block recipes, initialization, docs, updates))mergeprecedence fix forAttributes#5332 (if we want to fix it we should probably do it in a breaking release?)skip_updateas a replacement for returningnothingin ComputePipeline callbacks #5754Consider:
ifelsebranches in ComputeGraph edges #5749 (non-breaking)PRs to merge outside of this:
add interactive zoom inset #5456Fixes:
barplotcontains gap when usingyscale=log#4549hist(dates)MethodError #3889, fixeshistshould work on categorical inputs #4409meshscatterlinesdoes not work with Point2 with DateTime #4774, fixes Sometimes units are not handled #3945base_unit(::Float64)#4085, fixes plot() returns error when called on data of Vector{Quantity{Int}} due to arguments passed to Unitful.Quantity() #5231. Well sort of, the input data is aVector{Quantity{Float64}}which now successfully gets converted as a unitless unit. Generates and empty label suffix though[]scatter!fails forVector{Union{missing, Float64}}#5089, maybe because earlyconvert_arguments()run more consistently?scatterlines.inspector_labelis broken #4713access to undefined referencewith child plots #5383 by avoiding the need to setinspector_labelfor child plotsvlines#5520mergeprecedence fix forAttributes#5332mergeonAttributesdoes not work in the same way as the one in the standard library #1939Legend(..., ax)to update with plots created after Legend #5672axislegendcould update when new plots are added to the axis #3207TODO:
x/y/zlims!()still work the same in all axis types, specifically after interactively changing themconsider making export skipping in recipes user facing, i.e. add documentation and improve syntax (e.g. kwarg-likeadded to master by Juliusexport = true/false)@forwarded_layoutfix orremoveshort_unit, rework suffix to work with different label string typesChecklist