WordPress Meta Environment
WME aims to make it easier to contribute to the network of official WordPress.org websites by automatically setting up a local development environment that is already provisioned with everything you need to get started on a patch. The environment will contain all of the open-source code that runs each supported site, as well as some sample data that mimics the production site.
WME is built on top of Varying Vagrant Vagrants, and works by provisioning the WordPress.org sites into an existing VVV installation. You can find a lot of documentation and resources for working with VVV on its homepage.
You can find more information about contributing to the official WordPress websites from the Meta team's handbook.
Available Sites
- jobs.wordpress.net
- wordcamp.org
- wordpress.org
- wordpress.tv
The goal is to eventually include all of the sites in the network.
Setup
- Setup Varying Vagrant Vagrants. If you choose to not install
the
vagrant-hostsupdater
plugin then you will need to manually add each of the site's hostnames to your local hosts file. - Clone this repository as a subdirectory of VVV's
www
folder -- e.g.,git clone https://github.com/iandunn/wordpress-meta-environment.git vagrant-local/www/wordpress-meta-environment
. If you choose to name the directory something other thanwordpress-meta-environment
, then you'll need to update the paths in each site'svvv-nginx.conf
file before you provision VVV in the next step. - Restart and re-provision VVV with
vagrant halt && vagrant up --provision
. - Visit http://wp-meta.dev for links to all the available sites. You can log in to any of them
with with username
admin
and passwordpassword
.
Updating
When new sites are added to the repository, you'll need to re-provision your local copy in order to obtain the new site.
- If the new site is not part of an existing multisite/multi-network installation, then you can simply run
vagrant halt && vagrant up --provision
. - If the new site is part of an existing installation (like
wordpressorg.dev
), then you'll need to delete thepublic_html
folder and database for that site, and then runvagrant halt && vagrant up --provision
. Don't forget to backup any uncommitted patches that you're working on.
If you're upgrading from an older copy of WME -- prior to December 4, 2014 -- then the best way to upgrade is just to start from scratch, since the repository has changed so much. Prior to the 4th, WME was a full fork of Varying Vagrant Vagrants, including the virtual machine, rather than just a collection of scripts that runs in an existing VVV installation.
Notes
- Subversion client version conflicts: Subversion repositories are checked out using version 1.8 inside the
virtual machine, and the 1.8 repository format is not compatible with the svn 1.7 client. If you have an older
client and try to run any svn commands, you'll get a
The client is too old to work with the working copy
error. Unfortunately there is no way to downgrade the repository format, but you can work around the issue by either, 1) Upgrading your svn client to version 1.8+; or 2) Work with svn from inside the virtual machine. - Developer.WordPressorg.dev WP-Parser memory errors: You may need to increase the amount of RAM that the virtual
machine has in order to run the parser for
developer.wordpress.dev
. To do that, open VVV'sVagrantfile
, locate the line that containsv.customize ["modifyvm", :id, "--memory", 512]
, and change512
to1024
. Once you've done that, runvagrant halt && vagrant up
to make the change take effect. - WordPressTV.dev video upload errors: The WPTV uploader integrates with VideoPress, which requires a connection to WordPress.com and a paid VideoPress subscription, so it isn't enabled.
Support
If you run into any problems, check the Notes section above. If that doesn't help, feel free to open an issue or ping iandunn in the #meta channel on WordPress's Slack server.
Contributing
Pull requests are welcome. Check out the TODO file for things that need some help, or open an issue to suggest something that's not on the list.
Before you make any database changes for a pull request, please make sure that you delete your local copy of the database and import the latest version. That will make merging much easier and helps avoid regressions.