VVV 3.0 was released this week, introducing a new Ubuntu 18.04 LTS box. The project’s previous versions used Ubuntu 14, which has now reached end of life (EOL).
Support for VVV 2 is now discontinued, due to an unforeseen complication with its PHP dependencies. Ondřej Surý, who maintains all the PHP packages VVV uses, deleted the unsupported ones in response to Ubuntu 14 reaching EOL. VVV contributors had set up a package mirror but only 70% of them were mirrored. As a result, VVV 2 installs were no longer able to provision. VVV maintainers have stopped supporting it and it will not receive any fixes or updates in the future.
Tom Nowell said he and his fellow VVV maintainers had “a mini- Ubuntu 14-apocalypse of sorts when it reached EOL,” so the new Ubuntu 18 box is a big bump up that should cover the project until 2024. It includes Kernel improvements that make Ubuntu faster when used in a virtual machine. The 3.0 update came out of necessity but it includes changes the team had already intended to make.
“We wanted to move from 14 to 18 for a long time anyway, and Anton Vanyukov had written a PR starting that, so we went ahead,” Nowell said. “The internals are based on VVV 2 so 99% of things should still work exactly the same (but a bit better and a little faster).”
VVV now uses a leaner custom built box, but it requires users to destroy their VMs in order to update. Directions for updating to 3.0 are in the release post. This destroys the database but VVV creates its own backups that can be quickly restored with a simple command.
Another major change in 3.0 is that VVV no longer stores MariaDB data inside the VM. The data has been relocated to database/data, which has the added benefit of being preserved when using the
vagrant destroy command.
The release also includes quite a bit of restructuring with the removal of the /vagrant mapped folder that eliminates overlapping vagrant shared folders. In addition to several dozen smaller improvements, VVV 3.0 adds a new teddy bear when it finishes provisioning.
The Future of VVV: Version 4 to Focus on User-Friendly Improvements to Provisioning
Although VVV doesn’t yet have a user-friendly interface and requires the use of a terminal, Nowell said the team is working towards making it easier to use. For now, VVV distinguishes itself from other development apps, like Local and DesktopServer, by being a community project that is free from commercial interests.
“VVV does a lot of the things DesktopServer does but for free,” Nowell said. “We don’t charge $99 for PHP7, SSL, or WP CLI. VVV won’t up sell you on hosting either, and you can have as many sites as you want out of the box.
“A lot of people like Local for using Docker containers, but all those containers are inside a boot2docker virtual machine using VirtualBox. They have a pretty UI, and it’s great if you use FlyWheel as a host, but it’s not the easiest to get set up for contributing to WordPress.”
VVV has a specific pre-built version that provides a development environment optimized for contributing to WordPress core. It can be copied onto a USB drive and set up on a user’s machine, even while offline. This pre-built version is often handed out at the beginning of contributor days at WordCamps.
“We’re a community driven project,” Nowell said. “People going to contributor days use VVV – the entire package can be pre-built and put on a USB stick and it runs in a lot more places than some of the docker based setups that some devs use. Until recently you needed to upgrade to Windows 10 Pro to be able to use Docker on Windows. Imagine 100 contributors downloading Windows 10 iso files over conference wifi.”
VVV maintainers and contributors are working on releasing version 3.1 in the next month with all the little things they want to polish. Nowell said they have the basis for what they want to accomplish in version 4. Instead of waiting for VVV to install and configure PHP/MySQL/nginx/etc, the install process will happen on a server somewhere and the user will be able to just download the result, similar to how VVV is pre-built for contributor days.
Nowell identified the major impacts of taking this approach:
- It doesn’t matter if provisioning works for you, we’re doing that for you.
- If someone makes a big slip up, that’s ok, users get the last working build and see nothing.
- Getting everything set up should be much much faster, it will remove about 70-80% of the startup time for a lot of users.
Nowell said the general goal is to “just make it more fun to use” but his personal goal is for people to be able to use VVV without ever touching a terminal. He thinks it can be done with an Electron wrapper and has performed a few experiments with it. In the past, he spent a lot of time improving the messaging for provisioning errors, but the days of trying to preempt those problems may soon be drawing to a close.
“Why fix provisioning for users if they never have to do it in the first place?” Nowell said. “I’d say VVV 4 will come pre-built so it only builds the sites themselves, like how you can grab a docker image with PHP/MySQL already setup, and fill it with a site. Eventually the dashboard itself can become an Electron app where you can turn VVV on/off and adds sites.”
VVV maintainers have some ambitious plans for version 4 that will make it available to a wider population of WordPress users and save existing users more time on startup. The project needs more testers and feature requests. Contributions to the main project are welcome on GitHub. Developers and testers can also contribute to the meta environment to improve how it works with WordCamp sites and WordPress.org.