MakieOrg / Makie.jl

Interactive data visualizations and plotting in Julia
https://docs.makie.org/stable
MIT License
2.43k stars 312 forks source link

differentialequations_path_animation fails (outside of actual test) #434

Closed sjpeterson closed 4 years ago

sjpeterson commented 4 years ago

test Makie fails indirectly due to something that appears to be related to the solve function for differential equations (Julia 1.3).

Full Gallery recording: Error During Test at /home/stefan/.julia/packages/MakieGallery/AgMFY/src/io.jl:312
  Got exception outside of a @test
  LoadError: Default algorithm choices require DifferentialEquations.jl. Please specify an algorithm or import DifferentialEquations directly.
  Stacktrace:
   [1] #__solve#447(::Bool, ::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(DiffEqBase.__solve), ::DiffEqBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},MakieGallery.##TempModule#573.Lorenz{MakieGallery.##TempModule#573.var"#1#5",MakieGallery.##TempModule#573.var"#2#6",MakieGallery.##TempModule#573.var"#3#7",Nothing,Nothing,MakieGallery.##TempModule#573.var"#4#8",Expr,Expr},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}, ::Nothing) at /home/stefan/.julia/packages/DiffEqBase/avuk1/src/solve.jl:175
   [2] (::DiffEqBase.var"#kw##__solve")(::NamedTuple{(:default_set, :second_time),Tuple{Bool,Bool}}, ::typeof(DiffEqBase.__solve), ::DiffEqBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},MakieGallery.##TempModule#573.Lorenz{MakieGallery.##TempModule#573.var"#1#5",MakieGallery.##TempModule#573.var"#2#6",MakieGallery.##TempModule#573.var"#3#7",Nothing,Nothing,MakieGallery.##TempModule#573.var"#4#8",Expr,Expr},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}, ::Nothing) at ./none:0
   [3] #__solve#447(::Bool, ::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(DiffEqBase.__solve), ::DiffEqBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},MakieGallery.##TempModule#573.Lorenz{MakieGallery.##TempModule#573.var"#1#5",MakieGallery.##TempModule#573.var"#2#6",MakieGallery.##TempModule#573.var"#3#7",Nothing,Nothing,MakieGallery.##TempModule#573.var"#4#8",Expr,Expr},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}) at /home/stefan/.julia/packages/DiffEqBase/avuk1/src/solve.jl:179
   [4] __solve(::DiffEqBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},MakieGallery.##TempModule#573.Lorenz{MakieGallery.##TempModule#573.var"#1#5",MakieGallery.##TempModule#573.var"#2#6",MakieGallery.##TempModule#573.var"#3#7",Nothing,Nothing,MakieGallery.##TempModule#573.var"#4#8",Expr,Expr},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}) at /home/stefan/.julia/packages/DiffEqBase/avuk1/src/solve.jl:174
   [5] #solve_call#442(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(DiffEqBase.solve_call), ::DiffEqBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},MakieGallery.##TempModule#573.Lorenz{MakieGallery.##TempModule#573.var"#1#5",MakieGallery.##TempModule#573.var"#2#6",MakieGallery.##TempModule#573.var"#3#7",Nothing,Nothing,MakieGallery.##TempModule#573.var"#4#8",Expr,Expr},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}) at /home/stefan/.julia/packages/DiffEqBase/avuk1/src/solve.jl:0
   [6] solve_call(::DiffEqBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},MakieGallery.##TempModule#573.Lorenz{MakieGallery.##TempModule#573.var"#1#5",MakieGallery.##TempModule#573.var"#2#6",MakieGallery.##TempModule#573.var"#3#7",Nothing,Nothing,MakieGallery.##TempModule#573.var"#4#8",Expr,Expr},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}) at /home/stefan/.julia/packages/DiffEqBase/avuk1/src/solve.jl:37
   [7] #solve#443(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(DiffEqBase.solve), ::DiffEqBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},MakieGallery.##TempModule#573.Lorenz{MakieGallery.##TempModule#573.var"#1#5",MakieGallery.##TempModule#573.var"#2#6",MakieGallery.##TempModule#573.var"#3#7",Nothing,Nothing,MakieGallery.##TempModule#573.var"#4#8",Expr,Expr},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}) at /home/stefan/.julia/packages/DiffEqBase/avuk1/src/solve.jl:61
   [8] solve(::DiffEqBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},MakieGallery.##TempModule#573.Lorenz{MakieGallery.##TempModule#573.var"#1#5",MakieGallery.##TempModule#573.var"#2#6",MakieGallery.##TempModule#573.var"#3#7",Nothing,Nothing,MakieGallery.##TempModule#573.var"#4#8",Expr,Expr},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}) at /home/stefan/.julia/packages/DiffEqBase/avuk1/src/solve.jl:45
   [9] (::MakieGallery.##TempModule#573.var"#11#12")(::Float64, ::Float64, ::Float64, ::LinRange{Float64}) at ./interactive_differential_equation:35
   [10] lift(::Function, ::Observables.Observable{Any}, ::Observables.Observable{Any}, ::Vararg{Any,N} where N) at /home/stefan/.julia/packages/AbstractPlotting/3uXXp/src/interaction/nodes.jl:9
   [11] top-level scope at interactive_differential_equation:34
   [12] #eval_example#76(::Base.Iterators.Pairs{Symbol,MakieGallery.var"#output_path#117"{String},Tuple{Symbol},NamedTuple{(:outputfile,),Tuple{MakieGallery.var"#output_path#117"{String}}}}, ::typeof(eval_example), ::MakieGallery.CellEntry) at /home/stefan/.julia/packages/MakieGallery/AgMFY/src/database.jl:552
   [13] #eval_example at ./none:0 [inlined]
   [14] (::MakieGallery.var"#80#81"{Base.Iterators.Pairs{Symbol,MakieGallery.var"#output_path#117"{String},Tuple{Symbol},NamedTuple{(:outputfile,),Tuple{MakieGallery.var"#output_path#117"{String}}}},MakieGallery.var"#116#118"{Tuple{Int64,Int64},String,Array{Any,1}}})(::MakieGallery.CellEntry) at /home/stefan/.julia/packages/MakieGallery/AgMFY/src/database.jl:582
   [15] #enumerate_examples#63(::Int64, ::Nothing, ::typeof(MakieGallery.enumerate_examples), ::MakieGallery.var"#80#81"{Base.Iterators.Pairs{Symbol,MakieGallery.var"#output_path#117"{String},Tuple{Symbol},NamedTuple{(:outputfile,),Tuple{MakieGallery.var"#output_path#117"{String}}}},MakieGallery.var"#116#118"{Tuple{Int64,Int64},String,Array{Any,1}}}) at /home/stefan/.julia/packages/MakieGallery/AgMFY/src/database.jl:513
   [16] #enumerate_examples at ./none:0 [inlined]
   [17] #eval_examples#79 at /home/stefan/.julia/packages/MakieGallery/AgMFY/src/database.jl:581 [inlined]
   [18] #eval_examples at ./none:0 [inlined]
   [19] macro expansion at /home/stefan/.julia/packages/MakieGallery/AgMFY/src/io.jl:313 [inlined]
   [20] macro expansion at /build/julia/src/julia-1.3.1/usr/share/julia/stdlib/v1.3/Test/src/Test.jl:1107 [inlined]
   [21] #record_examples#115(::Tuple{Int64,Int64}, ::Bool, ::Bool, ::Bool, ::Bool, ::typeof(MakieGallery.record_examples), ::String) at /home/stefan/.julia/packages/MakieGallery/AgMFY/src/io.jl:313
   [22] record_examples(::String) at /home/stefan/.julia/packages/MakieGallery/AgMFY/src/io.jl:294
   [23] top-level scope at /home/stefan/.julia/packages/Makie/3CKlT/test/runtests.jl:23
   [24] top-level scope at none:6
  in expression starting at interactive_differential_equation:34
(v1.3) pkg> st
    Status `~/.julia/environments/v1.3/Project.toml`
  [537997a7] AbstractPlotting v0.9.17
  [c52e3926] Atom v0.11.3
  [6e4b80f9] BenchmarkTools v0.4.3
  [0c46a032] DifferentialEquations v6.11.0
  [add2ef01] GDAL v1.0.2
  [e9467ef8] GLMakie v0.0.13
  [4d00f742] GeometryTypes v0.7.7
  [7073ff75] IJulia v1.20.2
  [e5e0dc1b] Juno v0.7.2
  [ee78f7c6] Makie v0.9.5
  [dbd62bd0] MakieGallery v0.1.2
  [47be7bcc] ORCA v0.3.1
  [9b87118b] PackageCompiler v0.6.5
  [f0f68f2c] PlotlyJS v0.13.1
  [91a5bcdd] Plots v0.28.4
  [ce6b1742] RDatasets v0.6.6
  [295af30f] Revise v2.5.0
asinghvi17 commented 4 years ago

The issue is fixed on MakieGallery' master branch!

You can use the master branch by executing this snippet in the REPL:

]add MakieGallery#master
sjpeterson commented 4 years ago

Well, that solved that particular issue, but revealed a slew of others. First all image comparison tests failed because I use a tiling window manager, then just the moire image comparison failed (by a small margin) with xfwm4, then I finally managed to get all tests to pass by switching back to my tiling manager and explicitly instruct it not to manage Makie's windows.

This was just with ]test Makie, however, and the test invocation when attempting to precompile with PackageCompiler.compile_incremental appears to play by different rules as 22 tests failed (in most cases, something about no suitable method for save_media) and the precompilation itself failed with

ERROR: LoadError: LoadError: Ambiguous dependency on `AbstractPlotting`

Trying ]test Makie again, normals_of_a_cat fails.

asinghvi17 commented 4 years ago

This should be fixed, and CI is green now.