Hi all,

I maintain pkg.julialang.org, and the automatic package testing system (
PackageEvaluator.jl <https://github.com/IainNZ/PackageEvaluator.jl>)

Until now PackageEvaluator was run on an Arch Linux box as a normal user 
account, and there wasn't really a practical way of installing system-wide 
binary dependencies (i.e. dependencies that can't be installed or aren't 
installed by BinDeps). There was also an issue of reproducibility: things 
might be broken according to PackageEvaluator, but work on your machine, 
and there was no good way to figure out why if the logs weren't helpful 
(except for manual intervention on my part).

I've reorganized/refactored/reworked it, and now its a much more 
sustainable design:
- Uses the generic linux binaries for 0.3 and 0.4
- Tests run on Ubuntu 12.04 (ubuntu/precise64)
- Runs inside a VirtualBox virtual machine
- Launched and configured via Vagrant <https://www.vagrantup.com/>

The bit where the results are post-processed into a format for the website 
still have a human in the loop (me), and aren't well documented, but thats 
another project.

A consequence of all this is that *some packages are now broken on 
PackageEvaluator, and I might need your help to fix them*. Here is a list 
of what broke (scroll down) <http://pkg.julialang.org/pulse.html> The 
probable reason they are broken is due to some binary dependency they need 
that aren't present in the image. Unlike before, I'm now quick happy to 
install binary dependencies to make testing work. In particular, very few 
Python-based packages were tested before, but I'm hoping to get them to 
work.

*Please submit pull requests 
to https://github.com/IainNZ/PackageEvaluator.jl/blob/master/scripts/setup.sh 
<https://github.com/IainNZ/PackageEvaluator.jl/blob/master/scripts/setup.sh> 
with 
any changes that you'll need to get your package going. *

I'm also interested in PRs that refactor the provisioning script setup.sh - 
my Bash skills are weak

Also: adding interesting outputs to the PackageEvaluator process. For 
example, I've just started collecting all exported names from all packages for 
this issue <https://github.com/JuliaLang/julia/issues/10272>. What else 
could you do with a system that is downloading and installing every package 
every night?

I'll work on further documenting all this to ensure maximum 
developer-friendliness.

Thanks,
Iain




Reply via email to