Not for my sake


The direction the Drupal community has taken over the last few weeks is a serious threat to the spirit of an open source, inclusive community in which I have thrived. I have spent a great deal of time thinking about my place in a community that has now set an unsafe precedent for the monitoring and policing of personal conduct and beliefs. I have concluded, however, that since I still trust that the choices that those in power have made were well-intentioned albeit misguided, there is some hope that the original intention to safeguard the Drupal community can be more faithfully carried out with a change of course.

Production is an Artifact of Development


The thing that you put onto production should be the product of the thing that you build with development. You should ship only artifacts, not development tools. I give a brief history of the evolution of Drupal's project repository and provide by manifesto for the separation of production and development code.

An Open Letter to My Clients


An attempt to explain to my non-technical clients what I need from them to succeed and why.

Introducing the No Excuses Series


Introducing the complete 5 part series to make your Drupal workflow modern and sane.

No Excuses Part V: Automated Deployment


In the last part of our No Excuses series, we are going to automate our deployment.

No Excuses Part IV: System testing Drupal with a BDD tool (Behat)


Finally, we will set up some tests. We are going to add Behat for system testing and test our build with each commit on a CI server.

No Excuses Part III: Build drupal with Composer


Excuses are up; time to build your drupal with Composer.

No Excuses Part II: Making your Drupal Build explicit and executable


We continue to get you started with a Continuous Integration process by getting your Drupal build locked down so you can build it over and over again.

No Excuses Part I: Drupal-optimized Environment Config with (Ph)Ansible and Vagrant


You have run out of excuses for not implementing a Continuous Integration process. I will give you everything you need to automate your system and drupal build, automate tests and automate deployment. We start today with the basics: getting your system into a versioned, distributable, known-state.

Testing and Deploying Sculpin to github pages on CircleCI


Automate the deployment of your Sculpin project's artifact to Github Pages using CircleCI. Set it and forget it.

Add this to your automated tests: check for overridden features


If you are using features, it is only a matter of time before they are overridden and become a black hole of uselessness. Ensure that this doesn't happen by automating a test to check for overridden features.

WD php: Exception: To start over, you must empty your existing database.


If you get this error, especially on a virtual machine or a CI server, I think I might know what the trouble is.

Using CircleCI to test Drupal


A tutorial for building and testing Drupal on CircleCI.

Fooling Behat into Using Phantomjs rather than Selenium


Here's a special April Fool's Day trick for Behat: swap out your Selenium Driver with Phantomjs for better performance.