AbstractPlotting.jl moved to Makie.jl

My code was running fine last night on my Windows 10 system. Today I get the following message when I type “using GLMakie” in the REPL:

Warning: Everything from AbstractPlotting.jl got moved to Makie.jl.
│ Have a look at the README for information on how to upgrade:
GitHub - JuliaPlots/AbstractPlotting.jl: An abstract interface for plotting libraries, part of the Makie ecosystem.

I have followed the directions in the README but nothing seems to work. Is anyone else having a similar problem?

If you want to stay with your old version, pin the penultimate AbstractPlotting version without the warning.

If you want to use the new versions, install one of the three backends and take care that nothing blocks the correct update. A way to do this is with ]add GLMakie@0.4.3. That is the latest version as can be seen here Makie.jl/Project.toml at master · JuliaPlots/Makie.jl · GitHub. If another package blocks the update, you will see it in the error message.

3 Likes

Before I saw your response to my question I decided to start from scratch and reinstall the latest stable version of Julia which is 1.6.2.

Then I got your response to my question. I don’t know what you mean by “pin the penultimate AbstractPlotting version without the warning”.

However, I have a clean Windows 10 64-bit install of Julia Version 1.6.2 with no other packages installed, and am using Atom Version 0.12.32, and Juno Version 0.8.4. When I run ]add GLMakie@0.4.3 I get the following message:

(@v1.6) pkg> add GLMakie@0.4.3
Resolving package versions…
ERROR: Unsatisfiable requirements detected for package WebIO [0f1e0344]:
WebIO [0f1e0344] log:
├─possible versions are: 0.2.5-0.8.15 or uninstalled
├─restricted by compatibility requirements with Atom [c52e3926] to versions: 0.6.0-0.8.15
│ └─Atom [c52e3926] log:
│ ├─possible versions are: 0.8.0-0.12.32 or uninstalled
│ └─restricted to versions * by an explicit requirement, leaving only versions 0.8.0-0.12.32
└─restricted by compatibility requirements with Observables [510215fc] to versions: uninstalled — no versions left
└─Observables [510215fc] log:
├─possible versions are: 0.2.0-0.4.0 or uninstalled
└─restricted by compatibility requirements with GLMakie [e9467ef8] to versions: 0.4.0
└─GLMakie [e9467ef8] log:
├─possible versions are: 0.0.1-0.4.4 or uninstalled
└─restricted to versions 0.4.3 by an explicit requirement, leaving only versions 0.4.3

I also took a look at Makie.jl/Project.toml at master · JuliaPlots/Makie.jl · GitHub. The only reference I see to the GLMakie version is to version 0.4.4. The first 3 lines of the file are:

uuid = “e9467ef8-e4e7-5192-8a1a-b1aee30e663a”
version = “0.4.4”
name = “GLMakie”

So I ran ]add GLMakie@0.4.4 and got the following message:

(@v1.6) pkg> add GLMakie@0.4.4
Resolving package versions…
ERROR: Unsatisfiable requirements detected for package WebIO [0f1e0344]:
WebIO [0f1e0344] log:
├─possible versions are: 0.2.5-0.8.15 or uninstalled
├─restricted by compatibility requirements with Atom [c52e3926] to versions: 0.6.0-0.8.15
│ └─Atom [c52e3926] log:
│ ├─possible versions are: 0.8.0-0.12.32 or uninstalled
│ └─restricted to versions * by an explicit requirement, leaving only versions 0.8.0-0.12.32
└─restricted by compatibility requirements with Observables [510215fc] to versions: uninstalled — no versions left
└─Observables [510215fc] log:
├─possible versions are: 0.2.0-0.4.0 or uninstalled
└─restricted by compatibility requirements with GLMakie [e9467ef8] to versions: 0.4.0
└─GLMakie [e9467ef8] log:
├─possible versions are: 0.0.1-0.4.4 or uninstalled
└─restricted to versions 0.4.4 by an explicit requirement, leaving only versions 0.4.4

I am fairly new to Julia and am not sure how to interpret the above messages. What do you think I should try next?

Rich

(@v1.6) pkg> add GLMakie@0.4.4
Resolving package versions…
ERROR: Unsatisfiable requirements detected for package WebIO [0f1e0344]:

That’s not a clean environment, since it has WebIO :wink: I suppose it comes from Atom/Juno, which hasn’t seen much development in the recent years, in favor of VSCode.
You can either try adding add WebIO#master, until this is fixed: fix webio compat by SimonDanisch · Pull Request #460 · JuliaGizmos/WebIO.jl · GitHub
Or remove Juno…

1 Like

Adding WebIO#master worked! These are the packages that are installed after I added WebIO#master and GLMakie@0.4.4:
“Juno” => v"0.8.4"
“GLMakie” => v"0.4.4"
“Atom” => v"0.12.32"
“WebIO” => v"0.8.15"

When I tried to test GLMakie using Pkg.test(“GLMakie”) I got lots of error messages:
julia> Pkg.test(“GLMakie”)
Testing GLMakie
┌ Warning: Could not use exact versions of packages in manifest, re-resolving
└ @ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1530
ERROR: expected package ReferenceTests [d37af2e0] to be registered
Stacktrace:
[1] pkgerror(msg::String)
@ Pkg.Types C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Types.jl:55
[2] check_registered(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec})
@ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1157
[3] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, level::Pkg.Types.UpgradeLevel)
@ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1321
[4] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; level::Pkg.Types.UpgradeLevel, mode::Pkg.Types.PackageMode, update_registry::Bool, kwargs::Base.Iterators.Pairs{Symbol, Base.DevNull, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.DevNull}}})
@ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:261
[5] up(ctx::Pkg.Types.Context; kwargs::Base.Iterators.Pairs{Symbol, Any, NTuple{4, Symbol}, NamedTuple{(:level, :mode, :update_registry, :io), Tuple{Pkg.Types.UpgradeLevel, Pkg.Types.PackageMode, Bool, Base.DevNull}}})
@ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:84
[6] resolve(ctx::Pkg.Types.Context; kwargs::Base.Iterators.Pairs{Symbol, Base.DevNull, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.DevNull}}})
@ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:267
[7] (::Pkg.Operations.var"#109#113"{String, Pkg.Operations.var"#119#121"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec}, Pkg.Types.PackageSpec})()
@ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1532
[8] with_temp_env(fn::Pkg.Operations.var"#109#113"{String, Pkg.Operations.var"#119#121"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec}, Pkg.Types.PackageSpec}, temp_env::String)
@ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1448
[9] (::Pkg.Operations.var"#108#112"{Pkg.Operations.var"#119#121"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec}, Pkg.Types.Context, Pkg.Types.PackageSpec, String, Nothing, String})(tmp::String)
@ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1521
[10] mktempdir(fn::Pkg.Operations.var"#108#112"{Pkg.Operations.var"#119#121"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec}, Pkg.Types.Context, Pkg.Types.PackageSpec, String, Nothing, String}, parent::String; prefix::String)
@ Base.Filesystem .\file.jl:729
[11] mktempdir(fn::Function, parent::String) (repeats 2 times)
@ Base.Filesystem .\file.jl:727
[12] sandbox(fn::Function, ctx::Pkg.Types.Context, target::Pkg.Types.PackageSpec, target_path::String, sandbox_path::String, sandbox_project_override::Nothing)
@ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1487
[13] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing)
@ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1662
[14] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Cmd, test_args::Cmd, kwargs::Base.Iterators.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
@ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:343
[15] test(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:80
[16] test(pkgs::Vector{Pkg.Types.PackageSpec})
@ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:78
[17] #test#63
@ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:76 [inlined]
[18] test
@ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:76 [inlined]
[19] #test#62
@ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:75 [inlined]
[20] test(pkg::String)
@ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:75
[21] top-level scope
@ none:1

But, I ignored the error messages and ran the following example which worked correctly (i.e. GLMakie plotted a sin wave in a Julia window):
using GLMakie
x = range(0, 10, length=100)
y = sin.(x)
lines(x, y)

Thanks for your help!