Hello all,
Me and my colleagues are currently developing a MOOC and plan to have the students work with some relatively simple notebooks via JuliaBox.
Here we'd like to use Gadfly.jl and Convex.jl which require an install.
Given that we want things to run smoothly for the students we would like to make installing these packages as simple as possible for them students.
At first instance we came up with the idea of having the students run a notebook cell containing Pkg.add("X") and Pkg.update().
Here we are aware of the fact that installing packages from inside IJulia may lead to some problems (
https://github.com/JuliaLang/julia/issues/12508 ).
Given the above we wonder, what would you recommend?
To give some more information.
Currently we let the student run Pkg.add("Gadfly") from within IJulia in a setup.ipynd notebook.
Some warnings aside---
WARNING: Module Compat uuid did not match cache file
This is likely because module Compat does not support precompilation but is imported by a module that does.
WARNING: deserialization checks failed while attempting to load cache from /opt/julia_packages/.julia/lib/v0.4/BinDeps.ji
INFO: Package database updated
--- we get to install Gadfly. Then we ask the students to halt this notebook and open the first course material notebook.
In this course material notebook we import PyPlot (using PyPlot) and Gadfly (import Gadfly) upon which we get the warnings:
WARNING: Module JSON uuid did not match cache file
This is likely because module JSON does not support precompilation but is imported by a module that does.
WARNING: deserialization checks failed while attempting to load cache from /opt/julia_packages/.julia/lib/v0.4/Conda.ji
INFO: Precompiling module Gadfly...
WARNING: could not import LinAlg._chol! into FixedSizeArrays
WARNING: New definition
+(AbstractArray{T<:Any, 2}, WoodburyMatrices.SymWoodbury) at /home/juser/.julia/v0.4/WoodburyMatrices/src/SymWoodburyMatrices.jl:106
is ambiguous with:
+(DataArrays.DataArray, AbstractArray) at /home/juser/.julia/v0.4/DataArrays/src/operators.jl:276.
To fix, define
+(DataArrays.DataArray{T<:Any, 2}, WoodburyMatrices.SymWoodbury)
before the new definition.
WARNING: New definition
+(AbstractArray{T<:Any, 2}, WoodburyMatrices.SymWoodbury) at /home/juser/.julia/v0.4/WoodburyMatrices/src/SymWoodburyMatrices.jl:106
is ambiguous with:
+(DataArrays.AbstractDataArray, AbstractArray) at /home/juser/.julia/v0.4/DataArrays/src/operators.jl:300.
To fix, define
+(DataArrays.AbstractDataArray{T<:Any, 2}, WoodburyMatrices.SymWoodbury)
before the new definition.
Aside from these warnings looking worrysome this approach seems to work.
Still I am very much wondering what you would recommend us.
As an aside, the MOOC will be a TU Delft and Caltech collaboration . I`ll make sure this gets added to the thread on MOOCS using JuliaBox.
- Willem