Drupal VM 3 is here!

Drupal VM 3.0.0 "The Light Sailer" was just released, and you can grab it from the Drupal VM website now. We spent a lot of time during DrupalCon New Orleans sprinting on Drupal VM, fixing bugs, and updating ALL THE THINGS to make sure this release solves a lot of pain points for individuals and teams who need a great local development environment.

Drupal VM - Website Homepage

Let's get right into why this is the best release of Drupal VM EVER!

The fastest and most modern environment

Drupal VM now defaults to Ubuntu 16.04 (which was just released in late April), running MySQL 5.7 and PHP 7. This means you're getting the fastest, most reliable, and most modern development environment for your Drupal 8 projects.

But you can still stick with any of the old OSes and versions of PHP just like you always could: Ubuntu 16.04, 14.04, and 12.04, as well as CentOS 7 and 6, and even Debian Jessie or Wheezy are supported out of the box! Technically, you can still run any version of PHP from 5.1 to 7.0 in Drupal VM (depending on OS selection)... but only PHP 5.5+ is supported right now.

Also, for 2.5.1, Blackfire.io support was added, so you can now profile in any PHP version with either Blackfire or XHProf! (There was a great session on Blackfire at DrupalCon NOLA.)

The best team-based development environment

New features in Drupal VM allow teams to do the following:

  • Add Drupal VM as a composer.json dependency (that's right, Drupal VM is on Packagist! - docs)
  • Commit a shared config.yml, and let developers override only the settings they need in a local.config.yml (docs)
  • Use Drupal VM and Vagrant in a subfolder, meaning you don't have to cd into the Drupal VM directory to run commands like vagrant up
  • Use a custom Vagrantfile to add in or modify Drupal VM's default Vagrant configuration (docs).
  • Add custom shell scripts and/or Ansible task files to be run before and/or after provisioning (docs)

This is the best release yet for development teams, because Drupal VM can be configured specifically for a particular Drupal site—and then parts of the configuration can be overridden by individual developers without any hacks!

A stable, reliable upgrade path

During the course of the Drupal VM 2.x series, one of the major pain points was upgrading Drupal VM to newer versions. At the Drupal VM BoF at DrupalCon, many people mentioned that every time they upgraded Drupal VM, they ended up with some random errors that caused friction. Even if not upgrading, certain Ansible roles would cause problems with older versions of Drupal VM!

Drupal VM now specifies versions of Ansible roles that are used to build the VM (as of 2.5.1), so if you download Drupal VM today, and don't upgrade for a long time, everything should keep working. And if you upgrade to a new version, and read through the release notes, you should have a smooth upgrade process.

600+ stars!

When I started working on Drupal VM, I just tossed my own local Vagrant configuration on GitHub and hoped someone else would see some good ideas in it. When the project had 50 stars (then 100, then 200), I was amazed, and wondered when interest in Drupal VM would start waning.

Ansible Galaxy - Explore Role Downloads

Lo and behold, a couple years in, Drupal VM has been starred over 600 times, and all the most downloaded roles on Ansible Galaxy are roles used in Drupal VM! It's also humbling, and quite awesome, to meet a complete stranger at DrupalCon who uses Drupal VM; thank you to all those who have used Drupal VM, have helped with all the open source Ansible Galaxy roles, and also help fight the good fight of automating all the infrastructure things for Drupal!

Special thanks to all the users who have contributed to the last few releases: oxyc, rodrigoeg, thom8, scottrigby, iainhouston, quicksketch, Mogtofu33, stevepurkiss, slimatic, sarahjean, nerdstein and derimagia (this list is not exhaustive, and I know I met more people at DrupalCon who helped but I forgot to mention here—please let me know if I forgot about you in the comments!).

What the future holds

I'm starting to work on better planning for future releases (e.g. 3.1.0, etc.), and you can always check the Drupal VM issue queue (especially 'Milestones') to see the latest. Somewhere down the line, parts of Drupal VM will likely start using Docker and/or other containerization tech to make builds and rebuilds much faster. There are already some users exploring the use of vagrant-lxc on Linux for speedier builds!

Where will we go for 4.0? I'm not quite sure yet... but I'll keep the guiding principles for my own development environment in mind:

  • Fast and flexible
  • Stable and secure (for local dev, at least)
  • Cross-platform compatible

Please download Drupal VM, try it out, and see what you think!

Comments

Wanted to say a big THANK YOU for the "Vagrantfile.local" and "local.config.yml" options! I always like to add the GUI to Vagrant, and different vagrant_synced_folders. I'm very happy to see these local options so I know longer have to futz with the core DrupalVM files!

Thanks!
--Tony

I missed the BoF at DrupalCon, but just wanted to say thanks for the great tool!