dCycle defines a technique for developing website features and configuration in a dev-stage-production workflow.
dCycle is a work in progress. If you want to help improve it, please see the contact page.
dCycle does not define a method for content staging.
dCycle relies on centralized git repositories, outside of any Drupal site, to store the modules, libraries and themes directories under version control.
Developers and themers are expected to download the modules, libraries and themes directories to their personal development space, then use the steps in the README.txt file, to recreate a working copy of the website for development.
The dev site is used to test features and how they work together, using dummy content (for example generated using devel_generate, part of the devel module. The dev site is generally not considered stable; and the client will generally not create content on the dev site. The dev site is where automated tests are run, if you have them in your features.
The staging site is considered stable, and that's where stakeholders can play around with different features, add content, tests the limits of the system.
The production site is the live site where actual content is entered.
In addition to the dev, staging and production sites, it is considered good practice for each developer and themer to have his or her own version of the site, which is created by following instructions in sites/*/modules/README.txt.
Developers and themers can use devel_generate to create dummy content on their personal sites for theming and creating new features.
When a developer or themer is done working on his or her local development site, changes to the database are moved to code, either via the features module (in the case of views for example), or manually documented in sites/*/modules/README.txt, the idea being that new clones of the site, sans content, can be created by creating a new drupal site, pulling the themes, libraries and modules git repos, and then following the instructions in sites/*/modules/README.txt.
dCycle relies on all features and configuration information being moved from the database into code during development on a local development site, the code then being deployed via git to different platforms (dev, stage, prod), then the features and configuration being transferred to the target site's database. Here's how it's done:
The features module allows much configuration and features to be moved to code, making code reuse easier. dCycle aims to make it easier to develop Drupal sites in a cyclical fashion: Use existing features to build a new site, create new features while building your site, reuse these new features for your next site.