What is DevShop?
DevShop is a set of easy-to-use tools built on top of the Aegir Project designed to make Drupal project development more efficient.
Quick Links: DevShop | DevShop Hosting | DevShop Provision | Provision Git
Why DevShop?
The developers of DevShop have been using Aegir for years. It is great and creating a lot of platforms and a lot of sites. However, keeping these sites and platforms organized can be a real chore.
So, after years of setting things up by hand, writing new custom scripts for every new client, and wondering if there could be a better way, we set out to architect and build a Drupal development shop infrastructure... in a box.
The goals of DevShop are...
1. to simplify management of multiple environments for multiple Drupal projects.
2. to provide web-based tools that streamline the Drupal site building workflow.
3. to provide a common, open-source infrastructure for Drupal development shops.
Installation
DevShop assumes a base Aegir installation. See http://community.aegirproject.org/handbook to learn about Aegir. The fastest and most supported way to install
While DevShop is still in rapid development, are better off by using a clone of the git repository than downloading the released code.
The required components for DevShop are:
- Provisionhttp://drupal.org/project/provision
- Hostmasterhttp://drupal.org/project/hostmaster
- Provision Githttp://drupal.org/project/provision_git
DevShop itself consists of:
- DevShop Provisionhttp://drupal.org/project/devshop_provision
- DevShop Hostinghttp://drupal.org/project/devshop_hosting
Compatibility
The supported hostmaster and provision branch is 6.x-1.x. Provision- and Hostmaster-6.x-1.9 are NOT compatible with DevShop without patches. It is strongly recommended to use the 6.x-1.x branches of provision and hostmaster until Aegir 1.10 is released.
Provision Commands & Hostmaster Tasks
- Pull Code
$ drush @project_NAME provision-devshop-pull ENVIRONMENT
This task pulls your code, runs new updates, reverts features, and clears
caches. It can be used as a Deployment task for test sites or live sites, or keeping your localhost in line without doing a database sync.- Git Pull the code for your site's platform.
- Then, all optionally:
- (optionally) Run update.php.
- (optionally) Revert all Features modules
- (optionally) Clear caches
- Commit Features
$ drush @project_NAME provision-devshop-commit ENVIRONMENT --message="My Commit"This task integrates with Features.module to make it very easy to recreate and
commit your features. NOTE: It is highly recommended to only commit from your single dev environment. Otherwise, you will very likely accidentally export unwanted changes, unless you keep your databases very up to date.This will be enforceable in the project settings soon.
- Calls drush features-update-all
- Commits the result, with a part automated and part customized commit message.
- (Optionally) pushes the commits.
- (Optionally) force-reverts after a commit.
- Sync Content
$ drush @project_NAME provision-devshop-sync SOURCE_ENVIRONMENT DESTINATION_ENVIRONMENT
This task makes it easy to copy the database and files from one environment to another within the project.
WARNING: This will DESTROY the destination site's database!
This task:
- (optionally) Pulls code
- Drops the DESTINATION_ENVIRONMENT database.
- Creates an SQL dump from SOURCE_ENVIRONMENT
- Copies the SQL dump to the local system (if SOURCE_ENVIRONMENT is a remote).
- Imports the SQL dump into DESTINATION_ENVIRONMENT database.
- (optionally) Runs update.php.
- (optionally) Runs features-revert-all.
- (optionally) Clears all caches.