Mimi Framework

Building package dependencies -> Failure for Cairo on Macs

@davidanthoff ideas here?

Yeah, should (at least in theory) have gotten rid of the Cairo.jl and Rsvg.jl dependency entirely.

You might try to first issue ] up to make sure you have all the latest registry info, and then do ] add VegaLite. Could you then report what you get for ] st? I.e. what version of VegaLite.jl it is installing?

@lrennels @davidanthoff Just wanted to resurrect this issue, less to do with Mimi and more to do with integrating some outdated, but required Julia packages for a project.

@kar5469 and I are working on a new climate/methane cycle model that requires the Julia MCMC Klara package. However, the Klara package is no longer being updated so we need to use pre-v1.0 versions of Julia (and old versions of Mimi), to be able to calibrate the model if we want to keep it in the Mimi framework. Kristina (who works on a Mac) is now having issues with Cairo and Rsvg again, and cannot add the older version of Mimi to her machine.

I know this is a bit of an odd/niche issue, but any thoughts on ways to resolve this other than just re-coding the Klara package to work with Julia v1.0+?

Thanks in advance!

@FrankErrickson - @davidanthoff and I just chatted about this and I think there are a few options we can try.

In the long run if we want to keep using Klara we are probably going to want to port that package, or more simply just the part of the package you use, over to v1.0 but for now we can create a branch or released tag of the last stable version of Mimi that did not depend on VegaLite, since that package does not support previous versions of Julia, and thus won’t be usable for your purposes and will probably keep causing problems.

@lrennels Ok cool and thanks, this is helpful! Agree about having to port Klara over at some point, but having the temporary fix will let us work on the model development right away.

And just to clarify, everything is working on my end. But @kar5469 is having the issues with her Mac. Could you just let us know when the branch or released tag is up and then we can get Kristina up and running with all the old stuff?

I created a branch called macfix-julia-0.6 for Mimi.jl that is a version that doesn’t require VegaLite.jl and is targeting julia 0.6. I think for folks on Mac they should be able to install that branch. I have to admit that I forgot how you install a specific branch of a package with the package manager of julia 0.6, but it should be fairly easy to figure that out from the documentation.

Let us know if this doesn’t work as a fix!

I don’t remember off the top of my head either, only how to pin a tagged version but not branch … I can look into the docs to help though @FrankErrickson

Taking a look here and in particular this paragraph:

“You may want to use the master version of a package rather than one of its registered versions. There might be fixes or functionality on master that you need that aren’t yet published in any registered versions, or you may be a developer of the package and need to make changes on master or some other development branch. In such cases, you can do Pkg.checkout(pkg) to checkout the master branch of pkg or Pkg.checkout(pkg,branch) to checkout some other branch …”

I think something like

Pkg.add(“Mimi”)
Pkg.checkout(“Mimi”, “macfix-julia-0.6”)

Should do the trick!

Hi Lisa,

I follow your directions and when I go to checkout there is an error about tracking information for the branch.

INFO: Checking out Mimi macfix-julia-0.6…

ERROR: GitError(Code:ERROR, Class:Merge, There is no tracking information for the current branch.)

Hey! I ended up wiping the .julia folder and starting from scratch. Your fix made it work. Only issue right now is when I try an example the explore() function is showing an error. Possibly not finding the correct directory.

julia> explore(m)

ERROR: could not spawn /Users/kar5469/.julia/v0.6/Electron/src/../deps/electron/Julia.app/Contents/MacOS/Julia /Users/kar5469/.julia/v0.6/Electron/src/main.js juliaelectron-606-2 juliaelectron-sysnotify-606-2: no such file or directory (ENOENT)

Stacktrace:

[1] _jl_spawn( ::String, ::Array{String,1}, ::Ptr{Void}, ::Base.Process, ::Base.DevNullStream, ::Base.DevNullStream, ::Base.DevNullStream ) at ./process.jl:360

[2] #376 at ./process.jl:512 [inlined]

[3] setup_stdio( ::Base.##376#377{Cmd}, ::Tuple{Base.DevNullStream,Base.DevNullStream,Base.DevNullStream} ) at ./process.jl:499

[4] #spawn#375( ::Nullable{Base.ProcessChain}, ::Function, ::Cmd, ::Tuple{Base.DevNullStream,Base.DevNullStream,Base.DevNullStream} ) at ./process.jl:511

[5] (::Base.#kw##spawn)( ::Array{Any,1}, ::Base.#spawn, ::Cmd, ::Tuple{Base.DevNullStream,Base.DevNullStream,Base.DevNullStream} ) at ./:0

[6] Electron.Application() at /Users/kar5469/.julia/v0.6/Electron/src/Electron.jl:107

[7] #explore#114( ::String, ::Function, ::Mimi.Model ) at /Users/kar5469/.julia/v0.6/Mimi/src/explorer/explore.jl:25

[8] explore( ::Mimi.Model ) at /Users/kar5469/.julia/v0.6/Mimi/src/explorer/explore.jl:15

Hi! I’m glad it’s working now! Unfortunately the explore function won’t be available to you on this older version of Mimi, since it requires Julia 1.0 now, so that is to be expected.

Frank and I will try to port the MCMC code over to Julia 1.0 on Tue. If we succeed you should be able to use Julia 1.0. We really need to move everyone off Julia 0.6, that is just too old and unsupported at this point.

1 Like