Installing Makie on Mac fails tests on release and master

plotting

#1

Freshly installed and built julia 1.0.3. When I try to use Makie, either on the release or on master branch, I get errors during testing, and I can’t do even a simple scatter plot. In the following copy/paste I’ve elided a bunch of the print output - full log is here.

2018-12-23|09:56:41 ~ ksb$ mkdir makietest; cd makietest
2018-12-23|09:56:56 makietest ksb$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.3 (2018-12-18)
 _/ |\__'_|_|_|\__'_|  |
|__/                   |

(v1.0) pkg> activate .

(makietest) pkg> add Makie
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
  Updating `~/makietest/Project.toml`
  [ee78f7c6] + Makie v0.9.0
  Updating `~/makietest/Manifest.toml`
 #...
  [4ec0a83e] + Unicode

(makietest) pkg> test Makie
   Testing Makie
 Resolving package versions...
    Status `/var/folders/nl/h0htjvx13dz9l4p42xzw7_8h0000gq/T/tmpDGrB0Y/Manifest.toml`
  [621f4979] AbstractFFTs v0.3.2
#...
  [4ec0a83e] Unicode  [`@stdlib/Unicode`]
WARNING: Method definition contour() in module AbstractPlotting at /Users/ksb/.julia/packages/AbstractPlotting/tmFCk/src/recipes.jl:127 overwritten in module Makie at /Users/ksb/.julia/packages/AbstractPlotting/tmFCk/src/recipes.jl:127.
ERROR: LoadError: LoadError: cannot assign variable AbstractPlotting.Contour from module Makie
Stacktrace:
 [1] top-level scope at /Users/ksb/.julia/packages/AbstractPlotting/tmFCk/src/recipes.jl:128
 [2] include at ./boot.jl:317 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1044
 [4] include at ./sysimg.jl:29 [inlined]
 [5] include(::String) at /Users/ksb/.julia/packages/Makie/YPDAk/src/Makie.jl:1
 [6] top-level scope at none:0
 [7] include at ./boot.jl:317 [inlined]
 [8] include_relative(::Module, ::String) at ./loading.jl:1044
 [9] include(::Module, ::String) at ./sysimg.jl:29
 [10] top-level scope at none:2
 [11] eval at ./boot.jl:319 [inlined]
 [12] eval(::Expr) at ./client.jl:393
 [13] top-level scope at ./none:3
in expression starting at /Users/ksb/.julia/packages/Makie/YPDAk/src/makie_recipes.jl:1
in expression starting at /Users/ksb/.julia/packages/Makie/YPDAk/src/Makie.jl:67
ERROR: LoadError: LoadError: Failed to precompile Makie [ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a] to /Users/ksb/.julia/compiled/v1.0/Makie/iZ1Bl.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1203
 [3] _require(::Base.PkgId) at ./loading.jl:960
 [4] require(::Base.PkgId) at ./loading.jl:858
 [5] require(::Module, ::Symbol) at ./loading.jl:853
 [6] include at ./boot.jl:317 [inlined]
 [7] include_relative(::Module, ::String) at ./loading.jl:1044
 [8] include(::Module, ::String) at ./sysimg.jl:29
 [9] include(::String) at ./client.jl:392
 [10] top-level scope at none:0
 [11] include at ./boot.jl:317 [inlined]
 [12] include_relative(::Module, ::String) at ./loading.jl:1044
 [13] include(::Module, ::String) at ./sysimg.jl:29
 [14] include(::String) at ./client.jl:392
 [15] top-level scope at none:0
in expression starting at /Users/ksb/.julia/packages/Makie/YPDAk/examples/library.jl:1
in expression starting at /Users/ksb/.julia/packages/Makie/YPDAk/test/runtests.jl:3
ERROR: Package Makie errored during testing

Or on master:

(makietest) pkg> add Makie#master AbstractPlotting#master GLMakie#master
  Updating git-repo `https://github.com/JuliaPlots/Makie.jl.git`
  Updating git-repo `https://github.com/JuliaPlots/AbstractPlotting.jl.git`
   Cloning git-repo `https://github.com/JuliaPlots/GLMakie.jl.git`
  Updating git-repo `https://github.com/JuliaPlots/GLMakie.jl.git`
 Resolving package versions...
  Updating `~/makietest/Project.toml`
  [537997a7] + AbstractPlotting v0.9.1 #master (https://github.com/JuliaPlots/AbstractPlotting.jl.git)
  [e9467ef8] + GLMakie v0.0.1 #master (https://github.com/JuliaPlots/GLMakie.jl.git)
  [ee78f7c6] ~ Makie v0.9.0 ⇒ v0.9.0 #master (https://github.com/JuliaPlots/Makie.jl.git)
  Updating `~/makietest/Manifest.toml`
  [537997a7] ↓ AbstractPlotting v0.9.2 ⇒ v0.9.1 #master (https://github.com/JuliaPlots/AbstractPlotting.jl.git)
 #...
  [9abbd945] + Profile
  Building GLMakie → `~/.julia/packages/GLMakie/lv9dg/deps/build.log`
  
  (makietest) pkg> test Makie
   Testing Makie
 Resolving package versions...
    Status `/var/folders/nl/h0htjvx13dz9l4p42xzw7_8h0000gq/T/tmpokcjsu/Manifest.toml`
  [621f4979] AbstractFFTs v0.3.2
 #...
  [4ec0a83e] Unicode  [`@stdlib/Unicode`]
WARNING: Method definition matcher(Type{MakieGallery.DatabaseLookup}, Any, Any, Any) in module MakieGallery at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/documenter_extension.jl:4 overwritten at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/documenter_extension.jl:25.
[ Info: starting from index 1
LoadError: You can't create a video stream without ffmpeg installed.
         Please install ffmpeg, e.g. via https://ffmpeg.org/download.html.
         When you download the binaries, please make sure that you add the path to your PATH
         environment variable.
         On unix you can install ffmpeg with `sudo apt-get install ffmpeg`.

in expression starting at animation:13
failed to evaluate the example:
```julia
using Makie

     scene = Scene()
     f(t, v, s) = (sin(v + t) * s, cos(v + t) * s)
     time_node = Node(0.0)
     p1 = scatter!(scene, lift(t-> f.(t, range(0, stop = 2pi, length = 50), 1), time_node))[end]
     p2 = scatter!(scene, lift(t-> f.(t * 2.0, range(0, stop = 2pi, length = 50), 1.5), time_node))[end]
     points = lift(p1[1], p2[1]) do pos1, pos2
         map((a, b)-> (a, b), pos1, pos2)
     end
     linesegments!(scene, points)
     N = 150
     record(scene, "/Users/ksb/.julia/packages/Makie/PfB1D/test/test_recordings/tmp/animation.mp4", range(0, stop = 10, length = N)) do i
         push!(time_node, i)
    end


```
stacktrace:

┌ Warning: Calling failed with example: Animation
└ @ MakieGallery ~/.julia/packages/MakieGallery/M6i3H/src/database.jl:562
MethodError: no method matching save_media(::MakieGallery.CellEntry, ::Nothing, ::String)
Closest candidates are:
  save_media(::Any, ::Scene, ::String) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/io.jl:2
  save_media(::Any, ::String, ::String) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/io.jl:8
  save_media(::Any, ::Stepper, ::String) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/io.jl:17
  ...
Stacktrace:
 [1] (::getfield(MakieGallery, Symbol("##85#86")){Base.Iterators.Pairs{Symbol,getfield(MakieGallery, Symbol("#output_path#106")){String},Tuple{Symbol},NamedTuple{(:outputfile,),Tuple{getfield(MakieGallery, Symbol("#output_path#106")){String}}}},getfield(MakieGallery, Symbol("##105#108")){Tuple{Int64,Int64},String}})(::MakieGallery.CellEntry) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/database.jl:564
 [2] #enumerate_examples#70(::Int64, ::Nothing, ::Function, ::getfield(MakieGallery, Symbol("##85#86")){Base.Iterators.Pairs{Symbol,getfield(MakieGallery, Symbol("#output_path#106")){String},Tuple{Symbol},NamedTuple{(:outputfile,),Tuple{getfield(MakieGallery, Symbol("#output_path#106")){String}}}},getfield(MakieGallery, Symbol("##105#108")){Tuple{Int64,Int64},String}}) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/database.jl:506
 [3] #enumerate_examples at ./none:0 [inlined]
 [4] #eval_examples#84(::Int64, ::Nothing, ::Base.Iterators.Pairs{Symbol,getfield(MakieGallery, Symbol("#output_path#106")){String},Tuple{Symbol},NamedTuple{(:outputfile,),Tuple{getfield(MakieGallery, Symbol("#output_path#106")){String}}}}, ::Function, ::getfield(MakieGallery, Symbol("##105#108")){Tuple{Int64,Int64},String}) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/database.jl:557
 [5] (::getfield(MakieGallery, Symbol("#kw##eval_examples")))(::NamedTuple{(:outputfile, :start),Tuple{getfield(MakieGallery, Symbol("#output_path#106")){String},Int64}}, ::typeof(MakieGallery.eval_examples), ::Function) at ./none:0
 [6] #record_examples#103(::Tuple{Int64,Int64}, ::Bool, ::Function, ::String) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/io.jl:176
 [7] record_examples(::String) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/io.jl:161
 [8] top-level scope at none:0
 [9] include at ./boot.jl:317 [inlined]
 [10] include_relative(::Module, ::String) at ./loading.jl:1044
 [11] include(::Module, ::String) at ./sysimg.jl:29
 [12] include(::String) at ./client.jl:392
 [13] top-level scope at none:0
 [14] eval(::Module, ::Any) at ./boot.jl:319
 [15] exec_options(::Base.JLOptions) at ./client.jl:243
 [16] _start() at ./client.jl:425ERROR: LoadError: MethodError: no method matching save_media(::MakieGallery.CellEntry, ::Nothing, ::String)
Closest candidates are:
  save_media(::Any, ::Scene, ::String) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/io.jl:2
  save_media(::Any, ::String, ::String) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/io.jl:8
  save_media(::Any, ::Stepper, ::String) at /Users/ksb/.julia/packages/MakieGallery/M6i3H/src/io.jl:17
  ...
in expression starting at /Users/ksb/.julia/packages/Makie/PfB1D/test/runtests.jl:20
ERROR: Package Makie errored during testing

Not quite sure what to do next. I’ve got a fresh julia, fresh environment and I thought I’d followed the instructions in the README. Any suggestions appreciated.


#2

There is an error for the video recording tests:

LoadError: You can't create a video stream without ffmpeg installed.
         Please install ffmpeg, e.g. via https://ffmpeg.org/download.html.
         When you download the binaries, please make sure that you add the path to your PATH
         environment variable.
         On unix you can install ffmpeg with `sudo apt-get install ffmpeg`.

#3

You can use homebrew to install ffmpeg:

brew install ffmpeg

(after installing homebrew)


#4

Huh - that worked, but scatter was also failing before (but now works). Weird…