Makie stopped working on my machine after update

Hello
I did a package update this morning and Makie seems to have stopped working. I tried deleting the .julia directory and instantiating again but the problem didn’t change. Is it just me?

using Makie
fig = Makie.Figure()

results in

ERROR: MethodError: no method matching alignedbboxobservable!(::Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}}, ::Observable{Any}, ::Observable{Tuple{Any,Any}}, ::Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}}, ::Observable{GridLayoutBase.AlignMode}, ::Observable{GridLayoutBase.RectSides{Float32}})
Closest candidates are:
  alignedbboxobservable!(::Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}}, ::Observable{Tuple{Float32,Float32}}, ::Observable, ::Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}}, ::Any, ::Any) at C:\Users\user1\.julia\packages\GridLayoutBase\RV1uX\src\layoutobservables.jl:178
Stacktrace:
 [1] LayoutObservables{GridLayout,G} where G(::Observable{Any}, ::Observable{Any}, ::Observable{Any}, ::Observable{Any}, 
::Observable{Any}, ::Observable{Any}, ::Observable{GridLayoutBase.AlignMode}; suggestedbbox::Observable{GeometryBasics.HyperRectangle{2,Float32}}, protrusions::Nothing, reportedsize::Nothing, autosize::Nothing, computedbbox::Nothing, gridcontent::Nothing) at C:\Users\user1\.julia\packages\GridLayoutBase\RV1uX\src\layoutobservables.jl:46
 [2] GridLayout(::Int64, ::Int64; rowsizes::Nothing, colsizes::Nothing, addedrowgaps::Nothing, addedcolgaps::Nothing, alignmode::Outside, equalprotrusiongaps::Tuple{Bool,Bool}, bbox::Observable{GeometryBasics.HyperRectangle{2,Float32}}, width::Auto, height::Auto, tellwidth::Bool, tellheight::Bool, halign::Symbol, valign::Symbol, default_rowgap::Float64, default_colgap::Float64, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\user1\.julia\packages\GridLayoutBase\RV1uX\src\gridlayout.jl:45
 [3] GridLayout(; kwargs::Base.Iterators.Pairs{Symbol,Any,Tuple{Symbol,Symbol},NamedTuple{(:bbox, :alignmode),Tuple{Observable{GeometryBasics.HyperRectangle{2,Float32}},Outside}}}) at C:\Users\user1\.julia\packages\GridLayoutBase\RV1uX\src\gridlayout.jl:1
 [4] GridLayout(::Scene; kwargs::Base.Iterators.Pairs{Symbol,Outside,Tuple{Symbol},NamedTuple{(:alignmode,),Tuple{Outside}}}) at C:\Users\user1\.julia\packages\AbstractPlotting\l5lsp\src\makielayout\helpers.jl:175
 [5] layoutscene(::Int64; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\user1\.julia\packages\AbstractPlotting\l5lsp\src\makielayout\helpers.jl:159
 [6] layoutscene(::Int64) at C:\Users\user1\.julia\packages\AbstractPlotting\l5lsp\src\makielayout\helpers.jl:158 (repeats 2 times)
 [7] Figure(; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\user1\.julia\packages\AbstractPlotting\l5lsp\src\figures.jl:59
 [8] Figure() at C:\Users\user1\.julia\packages\AbstractPlotting\l5lsp\src\figures.jl:59
 [9] top-level scope at REPL[3]:1

I’m using Julia 1.5.4 on Windows 10. It happens in VSCode and in the REPL. Package status is:

 [6e4b80f9] BenchmarkTools v0.6.0
  [336ed68f] CSV v0.8.4
  [be33ccc6] CUDAnative v3.2.0
  [717857b8] DSP v0.6.10
  [a93c6f00] DataFrames v0.22.5
  [31a5f54b] Debugger v0.6.7
  [7a1cc6ca] FFTW v1.3.2
  [e9467ef8] GLMakie v0.1.30
  [6218d12a] ImageMagick v1.2.0
  [ee78f7c6] Makie v0.12.0
  [f0f68f2c] PlotlyJS v0.14.1
  [91a5bcdd] Plots v1.10.6
  [d330b81b] PyPlot v2.9.0
  [295af30f] Revise v3.1.14
  [8149f6b0] WAV v1.1.0

That looks like something that could have happened in the most recent update, although it’s weird that it happens since all tests have been passing.
Maybe there are some versions, that haven’t been updated correctly.
Can you post the version of AbstractPlotting + Observables? (You may need to add the for ]st AbstractPlotting Observables to work

   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.6.0-rc1 (2021-02-06)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> using GLMakie; display(scatter(1:4))
GLMakie.Screen(...)
julia> Figure()
(MakieDev) pkg> st
      Status `C:\Users\sdani\MakieDev\Project.toml`
  [537997a7] AbstractPlotting v0.15.25
  [13f3f980] CairoMakie v0.3.19
  [5ae59095] Colors v0.12.6
  [5789e2e9] FileIO v1.6.4
  [e9467ef8] GLMakie v0.1.30
  [5c1252a2] GeometryBasics v0.3.11
  [6218d12a] ImageMagick v1.2.0
  [6d554a22] MakieTeX v0.0.1
  [510215fc] Observables v0.4.0
  [09ab397b] StructArrays v0.5.0

I can’t reproduce it with these versions!
I’m using julia 1.6 instead of 1.5, but I don’t think that should be an issue (we test on 1.5 in the CI).

Sorry, but how do I find the version of AbstractPlotting & Observables?

]add AbstractPlotting Observables; st AbstractPlotting Observables

I’ve encountered the same problem. Here is the output for mine.

Status `~/.julia/environments/v1.5/Project.toml`
  [537997a7] AbstractPlotting v0.15.25
  [510215fc] Observables v0.3.3

I tried ]add AbstractPlotting@0.15.24 to downgrade it but the problem still persist

Status `~/.julia/environments/v1.5/Project.toml`
  [537997a7] AbstractPlotting v0.15.24
  [510215fc] Observables v0.3.3

Mine gives

[537997a7] AbstractPlotting v0.15.25
 [510215fc] Observables v0.3.3

Oh, I see…So the old version of Observables may be the trouble maker…very odd :smiley: I’ll check it out!

That’s it:

julia> using GLMakie; display(scatter(1:4))
[ Info: Precompiling GLMakie [e9467ef8-e4e7-5192-8a1a-b1aee30e663a]
ERROR: MethodError: no method matching alignedbboxobservable!(::Observable{GeometryBasics.HyperRectangle{2, Float32}}, ::Observable{Tuple{Union{Nothing, Float32}, Union{Nothing, Float32}}}, ::Observable{Any}, ::Observable{Tuple{Any, Any}}, ::Observable{Tuple{Union{Nothing, Float32}, Union{Nothing, Float32}}}, ::Observable{GridLayoutBase.AlignMode}, ::Observable{GridLayoutBase.RectSides{Float32}})
Closest candidates are:
  alignedbboxobservable!(::Observable{GeometryBasics.HyperRectangle{2, Float32}}, ::Observable{Tuple{Union{Nothing, Float32}, Union{Nothing, Float32}}}, ::Observable{Tuple{Float32, Float32}}, ::Observable, ::Observable{Tuple{Union{Nothing, Float32}, Union{Nothing, Float32}}}, ::Any, ::Any) at C:\Users\sdani\.julia\packages\GridLayoutBase\RV1uX\src\layoutobservables.jl:178
Stacktrace:

I have a theory of why this happens with the old one :sweat:

This should fix it: https://github.com/jkrumbiegel/GridLayoutBase.jl/pull/14

And almost tagged: https://github.com/JuliaRegistries/General/pull/32194 :slight_smile:

1 Like

It’s working now, thanks very much. Great package - I’ve always wanted a Namiki Maki-e fountain pen but this will have to do.

1 Like