JuliaCon 2020 (times are in UTC)

Dependency-Aware Jupyter Notebooks
07-29, 13:40–13:50 (UTC), Purple Track

Jupyter notebooks are useful for sharing Julia code. But if collaborators have different package versions, bugs arise and reproducibility is lost.

We present two tools that solve this problem, and describe their use in QuantEcon's Julia course. One (InstantiateFromURL.jl) allows binds notebooks to GitHub repositories for TOML, and supports version-controlling notebooks and manifests. The other (PkgUtils.jl) allows for direct pasting of Manifest and Project information into the notebook file.


The current method for sharing dependency information with Jupyter is simply to send TOML files along with the notebook. This can be difficult (e.g. for students, who may struggle with Julia environments), and generally hampers mobility.

The QuantEcon Julia course uses InstantiateFromURL.jl to have notebooks download (version-controlled) TOML from GitHub. We demonstrate its support for both local machines and JupyterHubs.

Arnav is a Predoctoral Researcher at the UBC Vancouver School of Economics, where he works primarily with Jesse Perla. He is also a team member at QuantEcon, contributing to Julia projects and lectures.