Ruby development environment (GSoC idea)

32 views
Skip to first unread message

Pjotr Prins

unread,
Feb 6, 2016, 5:53:05 AM2/6/16
to sciru...@googlegroups.com
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.

Gianluca Della Vedova

unread,
Feb 8, 2016, 4:04:53 AM2/8/16
to sciru...@googlegroups.com
Hi Pjotr,
That's great!

Having a unified (and more powerful) interface to manage gems,
perl/python modules ... , would simplify a lot of developers' machine
configuration.

Can you give some more details (or links) to what you mean by replacing
Docker with guix?

Gianluca Della Vedova
http://gianluca.dellavedova.org
>--
>You received this message because you are subscribed to the Google Groups "SciRuby Development" group.
>To unsubscribe from this group and stop receiving emails from it, send an email to sciruby-dev...@googlegroups.com.
>For more options, visit https://groups.google.com/d/optout.

Pjotr Prins

unread,
Feb 8, 2016, 4:14:07 AM2/8/16
to sciru...@googlegroups.com
On Mon, Feb 08, 2016 at 09:14:26AM +0100, Gianluca Della Vedova wrote:
> Hi Pjotr,
> That's great!
>
> Having a unified (and more powerful) interface to manage gems,
> perl/python modules ... , would simplify a lot of developers' machine
> configuration.

Exactly. Deployments have gotten really complicated. Did you know Perl
is a dependency for building python...

Cool, some enthusiasm means I can add the proposal :)

> Can you give some more details (or links) to what you mean by replacing
> Docker with guix?

With guix you don't need containers - because the software 'store' is
immutable it is easy to both isolate and share. Even so, guix has its
own container command, so you create a container that actually shares
the guix store with the host. This way containers become very light.

For many things Docker is both overkill and too complicated. And
people use it for the wrong reason (reproducibility is actually not a
Docker strength).

I am writing documentation as I go, you can check the files in this repo

https://github.com/pjotrp/guix-notes/blob/master/README.md

There are docs for installing Guix, Ruby, reproducibility etc.

Pj.

Reply all
Reply to author
Forward
0 new messages