Hi! Welcome to the very late release post for VVV v3.0. As we follow semantic versioning, this is a breaking release, and requires slightly different update instructions.
Ubuntu 14 EOL and moving to Ubuntu 18 LTS
VVV 2 uses Ubuntu 14, but this reached end of life recently. In response Ondrej deleted the unsupported PHP packages, and all VVV 2 installs were no longer able to provision. VVV contributors had setup a package mirror in case this had happened, but it seems only 70% of the needed packages were mirrored.
For this reason, VVV 2 is no longer supported, and won’t be recieving fixes and updates.
VVV 3 moves us to a new Ubuntu 18.04 LTS box, which should cover us until 2024. Additionally, we’re using a leaner custom built box. This does mean that you will need to destroy your VM to update:
# turn off the VM
vagrant halt
# destroy the Ubuntu 14 VM
vagrant destroy
# pull down the latest update
git pull
# provision a shiny new Ubuntu 18 VM
vagrant up --provision
This will destroy the database, but luckily VVV has been creating backups for a long time, you can restore them after updating with this command:
vagrant ssh -c "db_restore"
If you turned off database backups, you can manually back up your database before updating with this command:
vagrant ssh -c "db_backup"
What Else Has Changed?
MariaDB data No Longer Inside the VM
VVV3 stores its database in database/data
now, which means it will survive a vagrant destroy
. If you’re having trouble provisioning mariadb, let us know on github issues.
We also added a config option to return to the old behaviour for those having problems:
general:
db_share_type: false
We continued optimising provision in this release, and making VVV friendlier.
Vagrant Guest Additions Plugin Disabled
Our new box has recent guest additions, so this shouldn’t be needed. However, some users like this plugin, and when reprovisioning encountered problems. We’ve disabled the plugin just for VVV to avoid these issues.
Changes To Utilities
Utilities are now simpler and easier to work with and debug:
- TLS certificates are now accessed via a new
/srv/certificates
folder - Utilities are now announced with messages for if no provisioner was found
- The trusted hosts utility has been deprecated and merged into the core provisioner, fixing several dashboard cloning issues
- VVV2 referred to utilities internally as resources, this has been changed to utilities, and they’re now cloned to the
provision/utilities
folder
Mapped Folder Changes
With this release, we removed the /vagrant
mapped folder and eliminated overlapping vagrant shared folders. This improves compatibility, the new shares are:
/srv/provision
->provision
/srv/certificates
->certificates
/srv/config
->config
/srv/database
->database/sql
/var/lib/mysql
->database/data
/var/logs/nginx
->logs/nginx
/var/logs/php
->logs/php
/var/logs/memcached
->logs/memcached
/srv/www
->www
VVV will now copy the version
and vvv-custom.yml
file on provision into /vagrant
inside the VM, but this folder is no longer mounted and is erased on every provision prior to copying.
Ubuntu 18 Changes
Ubuntu brings with it lots of Kernel improvements that make Ubuntu faster in a virtual machine. Expect to see small to large performance improvements in some areas depending on your machine and workload.
We also had the opportunity to update some packages, Mongodb has been updated from v3.4 to v4.0, and various security improvements have been inherited.
Provisioning Improvements
We also improved the provisioners:
- The Git PPA is now only added if it’s missing
- Various composer and git commands now run as
root
( VirtualBox determines the ownership of those folders, so they will always be owned by thevagrant
user ) - The branch and repo URL are mentioned when cloning dashboards, sites, and utilities
- the VVV splash no longer shows on a
halt
orsuspend
- when provisioning on Ubuntu 14 it aborts and gives instructions on updating
- added the VVV PPA package mirror
- nginx now gets reloaded instead of restarted
- VVV now copies over a minimal MySQL config for overrides
- Added
git-svn
support - Provisioners now log their output to
logs/provisioners/datetime/provisionername.log
in addition to showing in the terminal nvm
was removed from the core provisioner, it made a network request on every provision, and downloaded a script that always failed with syntax errors
VirtualBox and Vagrant Versions
If you’re using the 6.x versions of VirtualBox, be sure to update to v6.0.8
which contains several important fixes regarding shared folders.
We also now require Vagrant v2.2.4
as a minimum version.
.dev Domains Removed
We deprecated these a while ago, but vvv.dev
is no longer added as a host or listened for by Nginx. We also removed vvv.local
, and vvv.localhost
to avoid confusion. From now on vvv.test
is the dashboard URL.
As an aside, vvv
gets added, and we’d like to remove it, but aren’t sure how. If you know how to do it, let us know!
Finally, a Big Thank You To Our Testers
To make sure we eliminated as many kinks and issues as possible, we had a large pool of testers, community members who took their own time to help verify and find problems. I have no doubt some still remain, and I hope a v3.1 will be out in the next week or two. Dealing with the sudden changes to Ubuntu 14 have been tough on a lot of people, and a major disruption to others, thank you for being patient!