One question is whether all of this docker stuff is required. The short answer is (1) that we couldn’t figure out how to get it working with the
postbuild scripts; and (2) that it really should be built directly into the mybinder Julia support directly.
We think that we know how to do it, but based on how mybinder works (and their standards) we need to have the list of packages to precompile inside of the standard project files. the mybinder crew only wants to support standard package/project/etc. files without incompatible extensions.
One proposed solution is:
- Allow for a list of packages white-listed for compiling an image inside of the
Project.toml file directly. I imagine there could be plenty of other users of that information, even if the
Pkg.jl doesn’t use it directly.
- The mybinder support conditionally looks to see if there are any listed packages to be precompiled into the system image. If not, it uses a normal image. If so, it does a packagecompiler step.
- To users, this would all be seamless… you would just put a Project.toml and Manifest.toml in the folder, as mybinder currently supports.
As a strawman to discuss imagine a new
compile which is allowed in the
targets. If you wanted to whitelist
GR for compiling into the images, you would add
compile = ["GR", "Plots"]
(consider moving this to a different thread if you think appropriate)