Packaging Julia project for Open Respoducable Science

180 views
Skip to first unread message

Lyndon White

unread,
Feb 11, 2016, 6:56:00 AM2/11/16
to julia-users
I've been working in IJulia for all of my experimental needs.
I am now submitting the paper and I wish to submit my code and data  along with it.

I also probably should include a copy of julia.
Since my code works in Julia 0.5, but I am confidant it doesn't work in any prior versions (such as the one in most package managers?)
and I guess I need to include the dependencies.

Are there guidelines for packaging up a julia project for reproducible science?

Lyndon White

unread,
Feb 11, 2016, 7:06:11 AM2/11/16
to julia-users
I just realized that not only am I dependent on Julia packages.
but via PyCall, I am also dependent on python packages.
How utterly terrifying packaging this will be.

I suspect I will end up failing to meet the goal of a package anyone can just click and run.
But I can at least release all the code in a nice view-able form.

Stefan Karpinski

unread,
Feb 11, 2016, 7:10:12 AM2/11/16
to Julia Users
This is not Julia-specific, but the ReproZip tool is really cool:


You record running your program on a Linux system and it monitors all of the system calls that your programs make and then zips up all of the required files – including shared libraries, etc. – so that they can be unzipped in a virtual machine and the whole thing can be replayed. Kind of genius, imo.

Oliver Schulz

unread,
Feb 11, 2016, 7:49:52 AM2/11/16
to julia-users
Care (http://reproducible.io/) (based on PRoot, http://proot.me/) may also be an interesting option. I've used it before to pack up a complete Julia installation (including packages and required system libraries) on Ubuntu 14.04 and then run it on Scientific Linux 6. Care and PRoot are available as simple static binaries and give you a simulated chroot environment (via ptrace).

Michael Borregaard

unread,
Feb 11, 2016, 8:20:26 AM2/11/16
to julia-users
In terms of scientific reproducibility, I do not think that saving a click-and-run package is necessarily the best way to further that. What about unstated assumptions in your code, or (shiver) bugs? IMHO, submitting human-readable (i.e. annotated) source code is a stronger way to ensure reproducibility (and what is just as important, transparency). I guess it should be simple just to .zip the source code of the Julia packages you depend on (and their dependencies) from your local library folder.

Tom Breloff

unread,
Feb 11, 2016, 12:32:41 PM2/11/16
to julia-users
Lyndon:  You might want to get in touch with Simon Adar (si...@code-ocean.com).  His company is building out a platform for reproducible research (code, visualizations, etc) and you might be able to beta test.  (I've gotten a sneak peek, and it's a pretty cool service)

Josh Day

unread,
Feb 11, 2016, 12:39:12 PM2/11/16
to julia-users
How about releasing it as a Julia package?  You can handle your (Julia) dependencies with the REQUIRE file.

I'm working on a reproducible PhD thesis, and that's the route I'm going.  All my julia code and tex files will be in there and can be built from scratch.
Reply all
Reply to author
Forward
0 new messages