Scripts for quicker provisioning/updating of development environments
As the Commons team grows, more people are faced with the task of creating a local enviroment that mirrors the Commons for their development work. This is currently not an easy task. At a high level, you have to:
- make sure that a *AMP environment is running on your computer, and is roughly compatible with the server software running on the Commons production server
- clone the Commons repo
- download and import some version of the Commons database into your own local database
- do a bunch of wizardry to ensure that either you can switch your local environment to self-identify as 'commons.gc.cuny.edu', or to swap out with a local dev URL like 'commons.local.dev' or 'local.cicdev.com'
- maybe get some representative piece of the data at wp-content/blogs.dir/
Each of these steps is fraught with issues about data integrity, implementation details, and various, unpleasant gotchas.
Let's start to work toward something a bit more organized. I'm going to suggest the following as a starting point:
- Let's use Vagrant for VM management, since it's pretty widely used in the WP community
- Pick a provisioning tool - bash, Puppet, Salt, Chef, etc - for doing environment provisioning. I don't have a ton of experience here, so if anyone has thoughts, please jump in
- Write the necessary provisioning scripts to mirror the Commons fairly well (keeping in mind that we don't control the Commons environment directly, and that the Commons runs RHEL, which means we'll need to use a pretty-close free alternative OS)
- Write some scripts to handle fetching recent versions of Commons data, including a "cleaned-up" version of production data (I'll open a separate ticket for this)
I think this would be a cool summer project. Dom, I'm going to assign to you for the moment, as it seems up your alley, and ask you to give your initial thoughts.