vagrant/docs/changes/changes_04x_05x.md

4.0 KiB

layout title
documentation Changes - 0.4.x to 0.5.x

Changes in Vagrant 0.5.x

VirtualBox 3.2 Requirement

Although this has been true since Vagrant 0.4.2, I want to make a brief note of it here in a more prominent release announcement. Vagrant now only supports VirtualBox 3.2.x. Supporting 3.1.x in addition to 3.2.x was introducing complicated branch logic in the internals of Vagrant, opening up many areas for bugs to easily slip through. Because of this, I've decided to focus on VirtualBox 3.2.x. If you must use VirtualBox 3.1.x, please use an earlier version of Vagrant (0.4.1 works nicely).

Box URL Specification in Vagrantfile

Up until this point, the steps to share a project have been two-fold:

  1. Checkout the project with the Vagrantfile and associated files
  2. Ask coworker to download a box from some URL if they haven't already

This is now combined into a single step, since a box URL can be specified with the config.vm.box_url. During a vagrant up, if the box specified with config.vm.box doesn't exist, then Vagrant will download the box from this URL under the configured name.

NFS Shared Folders

It is a well known fact that VirtualBox shared folder performance degrades rapidly as the number of files in the shared folders increases (or if you don't know this now, you'll find out in the future as your project grows). Having worked on many multi-thousand file web projects, my coworkers and I quickly found that VirtualBox shared folders were too slow, and we had to resort to using tools such as rsync or unison to sync the "/vagrant" folder to some other non-shared-folder directory. This manual syncing process went against everything Vagrant believes in: not getting in your way and making development easier.

We found that an easy solution was to punt VirtualBox shared folders and use NFS (http://en.wikipedia.org/wiki/Network_File_System_(protocol)) instead. Therefore, Vagrant 0.5 comes with built-in support for setting up and mounting NFS shared folders. If you're finding that your shared folders are becoming much slower than your native file system, I recommend you switch to using NFS.

More details, including benchmarks, can be found at the NFS documentation page.

SIGINT (Ctrl-C) Finally Works

Thanks to some heavy internal refactoring and all out change, SIGINT (Ctrl-C) finally works during vagrant commands! During Vagrant 0.1 to 0.2, Vagrant used to leave VirtualBox in a broken state if you did Ctrl-C. And for 0.3 to 0.4, it used to exit, but you were forced to manually clean up after Vagrant. And if you did a SIGINT before Vagrant could persist the VM UUID, then vagrant destroy didn't even work! UGH!

But now, SIGINT anytime you want, and Vagrant will properly clean up after itself. Yes, you can even send an INT signal during an import or export, and everything will work out.

And, if you don't actually care about a clean exit, just press Ctrl-C again and any Vagrant commands will immediately exit.

Huge Internal Changes

Most of the work from 0.4.x to 0.5.x has been "under the hood" in preparation for future features. I expect these changes to bring about more stability in the long run to Vagrant, while possibly causing some very minor short term bugs, though my coworkers and I have been using Vagrant 0.5 in-house for a few weeks now without issue.

The Future

Since this release was mostly internals, despite a couple big new features, I think it is important that I talk a bit about my plans for the future of this project. Vagrant 0.6 will be a huge release and the features are already set for it, they just need to be developed. More details on this will be available to the mailing list as the features are developed.

Besides pure Vagrant releases, an official community-powered Vagrant box listing website has been under development and will be deployed and available shortly.

And finally, before Vagrant 0.6, I'm going to take the time to redo the getting started guide and updating the screencast as well.