Why isn't Vagrant standard practice?

I’m doing my part. My Debian Stable Vagrant box with pre-installed Ruby on Rails (https://github.com/jhsu802701/vagrant_debian_wheezy_rvm) is now part of my standard operating procedure.

Is there any reason that use of Vagrant is NOT already universal in the Ruby on Rails community? The issues that Vagrant addresses for me are:

  1. How can you get Ruby on Rails up and running in minutes instead of hours WITHOUT Vagrant? At an event like Startup Weekend or a 24-hour web site challenge, the Drupal, PHP, and Django people can get their teammates ready to roll in minutes. If you have to install Ruby on Rails without Vagrant, the process requires several steps and takes hours. Thanks to Vagrant, that will never again delay myself or anyone on my team from getting started.
  2. How do you install Ruby on Rails in Windows? Very few Ruby on Rails developers use Windows, which makes it hard to get help. Thanks to Vagrant, this will never be a problem for myself or anyone I work with, because it’s cross-platform.
  3. If RVM behaves in ways that you don’t expect, what do you do? It has happened to me a few times, though I was able to Google the error messages and figure out how to fix it. With Vagrant, I can just rebuild the box and return to original conditions. If you don’t have Vagrant, you may not be able to do anything in Ruby on Rails until you resolve the issue.
  4. How do you know that your gemspec/Gemfile and setup instructions are complete? This has come back to haunt me when I deployed Rails apps or published Ruby gems. If you remove dependencies from the Gemspec/Gemfile, those gems are NOT automatically uninstalled. (And the same goes for other gems that they pulled in.) Using Vagrant to rebuild my Ruby on Rails environment allows me to cover these bases. (And since I keep my projects in the shared directory, I don’t have to re-download them.)

I'm doing my part. My Debian Stable Vagrant box with pre-installed Ruby on Rails (https://github.com/jhsu802701/vagrant_debian_wheezy_rvm) is now part of my standard operating procedure.

Is there any reason that use of Vagrant is NOT already universal in the Ruby on Rails community? The issues that Vagrant addresses for me are:

I guess I've never felt the need particularly. I haven't timed myself but I certainly don't think it would take hours to install ruby and rails (and in any event this isn't something I do frequently). Windows isn't a concern for me and while I don't use rvm anymore I don't recall having problems with it. It has been discussed as a way of helping new developers get started at work

Bundler won't let you load gems not in your Gemfile, so I am not sure what your concern is there.

Fred

Yeah, it doesn’t take me ‘hours’ to setup a new rails environment. I do all my development in a Virtual Machine though - I wouldn’t dev directly on my laptop.

Previously I’ve had a Windows 8 laptop with Hyper-V + Ubuntu, now I use a Mac with VMware fusion + Ubuntu. Vagrant is certainly useful for some people, but it doesn’t surprise me it’s not universal as you put it.

Using OSX and ubuntu/linux installing rvm/rbenv followed by rails takes about 10 minutes - possibly slow download speed and need to compile ruby might slow it down, but still it is less than 10 lines to copypaste from rbenv/rvm installation guide… Vagrant also takes some time to setup… in my case much much more than installing ruby. And then staring up and configuring vagrant takes some time too.

Anyways in both cases, installing vagrant or installing ruby and ruby on rails are initial setup, not something you do every day (hopefully).

For people using windows, yes the setup seems to be harder and might take more time, but then you can just have a linux VM running or to use vagrant. (Or just install linux)

Or maybe help the community by improving the setup process on Windows and start helping others using Windows.

3 ) What if take the effort to fix the issue; and maybe even document it to say a blogpost to help the community.

  1. Nor with maven (Java world) etc. or really any other packet manager,

this can probably be solved by rvm gemsets or just by taking the effort of sometimes cleaning up installed non wanted gems.

And often you have multiple projects and the odds are you tend to keep using same gems for most of the time… (you really don’t want to ‘uninstall’ gem rails, should you accidentally remove it from your gemfile.

That being said, it is important to have as easy setup process as possible to make it easy for the community to grow.

-Jarmo