In the following FOSDEM presentation I present GNU Guix support for
Rubyi and gems:
https://fosdem.org/2016/schedule/event/guixmodules/
https://fosdem.org/2016/schedule/event/guixmodules/attachments/slides/1035/export/events/attachments/guixmodules/slides/1035/slides.pdf
In all, GNU Guix has become a viable alternative for RVM, rbenv and
bundler with full reproducibility built-in (unlike mentioned Ruby
tools).
At this point we have support in GNU Guix for three versions of MRI
(1.8.7, 2.1.8, 2.3.0) which is already great for testing.
Now, the promise for GNU Guix is that it can support JRuby, and
Rubinius too at the press of a button.
The project idea for GSoC I am thinking of is:
- Add JRuby support to Guix
- Add rbx support to Guix
- Add all testing frameworks to Guix (e.g. cucumber)
- Add all web development frameworks to Guix (e.g. RoR)
- Add Sciruby and related modules to Guix
- Provide support to Travis-CI (probably through Docker)
- Provide general Docker support
- Integrate with IRuby notebook and nyaplot
In all, this could mean that if one wanted to deploy SciRuby
with Rails, IRuby and nyaplot on jruby, all one has to do is
guix package -i jruby sciruby ruby-rails iruby nyaplot
and on MRI 2.1.8
guix package -i ruby-2.1.8 sciruby ruby-rails iruby nyaplot
and it would run anywhere, including Travis-CI. Or install ruby
latest with sciruby-openblas:
guix package -i ruby sciruby-openblas ruby-rails iruby nyaplot
Anyone interested in this type of functionality? If so, we can
make it a student project to help me in what I am doing already.
Guix, btw, has support for containers built-in, so we can even live
without Docker. I am totally stoked with this technology. Finally we
get a handle on complex deployments!
Pj.