Best Practices I always lose track of presentations I've done, so here's a list at least of some recent ones. DDEV From the beginning at TYPO3Camp RheinRuhr, 2025-11-07 Upsun MCP Experimentation at Drupalcon Vienna, 2025 New DDEV Features at Drupalcon Vienna, 2025 Contributor Training: Contributing to ddev.com DDEV on Linux in 10 Minutes ddev-upsun Add-on for DDEV See Blog post Contributor…
debugging Planet Drupal Introduction XDebug with PHPStorm can do step-debugging on remote sessions started from the command line on a remote machine. You just have to set up a couple of environment variables, map the remote code to the local code that PHPStorm has at its disposal, and tunnel the xdebug connection to your workstation. Note: If you just want to debug a PHP script (or drush command)…
debugging Planet Drupal Step-debugging is one of the key skills for any developer, and it can be baffling. When you start trying to control a remote webserver with an IDE running on your local workstation though, it gets even more complicated with the network problems. This article will deal directly with Xdebug as the debugging engine on the PHP end and Jetbrains PHPStorm 7.x as the IDE on the…
debugging Planet Drupal Summary: This post provides a way to develop/debug in a web environment where you don't have control of the calling party and your environment must be available on the global internet. It can be difficult to debug/develop a handler for an incoming web service when you don't have control of the caller. For example, I was developing a handler for Mandrill 's inbound webhooks…
Planet Drupal I've been a rabid supporter of Drupal; Of course anybody who knows me has watched my enthusiasm wear thin for various reasons, including simple burnout mostly, but also a number of frustrations with lack of progress in the community, especially with simple things like solving the support vacuum. However, I do not have an agenda against Drupal in any way, and as a professional…
Planet Drupal Governance Thanks to all of you for your enthusiastic and thoughtful participation in the Future of Drupal Governance core conversation at Drupalcon Denver. This post will provide resources for the conversation and attempt to summarize the ideas raised and actions taken at the core conversation, as well as to provide a path forward for us. Resources The new "Drupal Project…
Governance Planet Drupal This is the third in a series on governance and Drupal in preparation for the Drupalcon Denver Core Conversation on The Future of Drupal Governance . The first article discussed What is Governance and the second How Do Open Source Communities Govern Themselves? . Read all , Governance project on drupal.org , Drupalcon presentation video . Drupal's governance structure is…
Planet Drupal Governance This is the second in a series on governance and Drupal in preparation for the Drupalcon Denver Core Conversation on The Future of Drupal Governance . The initial article started off with What is Governance ; Read all , Governance project on drupal.org , Drupalcon presentation video . The fact that world-wide open source communities can organize themselves to collaborate…
git Planet Drupal Just over a year ago I wrote a blog post explaining how to use git clone --reference to speed up git clones. That technique then went on to become a drush option (if $options['cache'] = TRUE and you're using git for drush downloads) Well, I repent. git clone --reference should not be used IMO unless you really really understand three things: You really need to speed up clones and…
Planet Drupal Governance This is the first of a set of blog posts on governance written for the Future of Drupal Governance core conversation at Drupalcon Denver - hope to see you there. The series continues with How Do Open Source Communities Organize Themselves? , Drupal Governance and The Future of Drupal Governance . ( presentation video ), ( Governance project ) What is "governance?"…
Planet Drupal git Git is so smart about merging that it's often possible to referesh a stale patch in the queue using just git, without even looking at the contents of the patch. (I'm not saying you shouldn't look at any patch you post, just that git will often do all the refeesh work for you.) Update to the latest version of the project you're working with. Use git log to find the hash of a…
git Planet Drupal [Update October 2013: Warning: While I found submodules extraordinarily easy to use, especially when contributing back changes, I failed at nearly every turn to successfully involve other people with them. They always had unnecessary technical problems. So I have reverted back to a single repo for the entire project.] (There are screencasts illustrating these concepts at the…
Planet Drupal drush The marvelous drush makes an enormous number of things possible that would otherwise be tedious at best, and allows us to automate a shocking number of Drupal tasks. But it has a dark side. Drush does tasks that would normally be done by the web server (cron, update.php, enabling modules), and that means that it can leave files laying around that the web server may not be able…
Burnout Planet Drupal As you know, I've been writing and talking and thinking about burnout lately. One of the key causes of burnout is the situation where we lack control over what we do . For a long time, it seemed impossible to move Drupal.org (or our workflow or methodologies) forward. It just seemed like we were stuck with what we had. We lacked control over our website and our community…
Planet Drupal We value our community like a family, and have put loads of energy into the Drupal world. But we have some problems, and it's probably time for some discussion about our community manners and approach to problem-solving. We have the excellent Drupal Code of Conduct (copied from Ubuntu's model ) but it doesn't yet address a number of specifics (especially conflict resolution). So I'd…
Planet Drupal Burnout This post is the last in a series in preparation for the Burnout core conversation at Drupalcon London 2011. The first post discussed what burnout is ; the second is about what individuals can do about burnout ; the third was about how the Drupal Community burns people out . The key point of this series is that we need to do strategic thinking as a community about how to…
Planet Drupal Burnout This post is one of a series in preparation for the Burnout core conversation at Drupalcon London . The first post discussed what burnout is ; the second is about what individuals can do about burnout , and the final one will discuss what the Drupal community can do to prevent and deal with burnout. Also, please see Arianek's excellent post about burnout . One of the striking…
Planet Drupal Burnout This post is one of a series in preparation for the Burnout core conversation at Drupalcon London . The first post discussed what burnout is ; this one talks about what individuals can do about burnout, and the final two will discuss what about burnout is distinctive to the Drupal community, and what the Drupal community can do to deal with burnout. Also, please see Arianek's…
Planet Drupal Burnout This article is one of a series in preparation for the Burnout core conversation at Drupalcon London . This article will discuss what burnout is; future posts will cover how individuals can respond to burnout , what about burnout is unique to the Drupal community, and what the Drupal community can do to deal with burnout. What is burnout? Many of us "just know" the answer to…
Planet Drupal Triggers and actions are a core feature of Drupal and have been for a really long time. But lots of people don't know that they can actually be useful for some very basic and important tasks. You might say this is a beginner topic, but since I've only mastered it for my own use in the last year or so, I figured it was worth writing about :-) I use them mostly for notifications when…
Planet Drupal In Drupal 7 we have a very nice "registry" that registers what PHP classes should be loaded from what files. Unfortunately you can get the system into a state where it can't bootstrap to a high enough level to rebuild the registry (normally done by clearing the cache). What do you do then? I had this situation today due to an annoying Rules/Entity issue, and dereine pointed out that…
Planet Drupal Oops. I can't believe I said that. Drupal has a long tradition of insisting that everybody's contribution is equal, that every piece of content is equal. We have to stop that. It's nearly impossible to find the critical content on d.o and has been for a very long time. How do we fix this? Enlist the community. Here are some broad brushstrokes: Differentiate content. Use flag module…
git rebase Planet Drupal git Executive summary: Set up to automatically use a git pull --rebase Please just do this if you do nothing else: git config --global pull.rebase true About rebasing and pulling Edit 2021-06-17: Updated the suggested command from the old git config --global branch.autosetuprebase always to the current (from a long time) git config --global pull.rebase true I've written a…
Planet Drupal git Drupal 7 and Drupal 8 recently added a default (and sensible) .gitignore file to the standard repository, and while this solves some problems, it has also caused some confusion. ( issue ) Here's a link to the actual new .gitignore. Essentially, it excludes the sites/default/files and sites/default/settings.php files from git source control. What problems does having a default…
Planet Drupal This happens to me periodically, so I thought I'd write it down. Situation: An existing site has had its theme hacked in place, or just has a stock theme deployed and I need a subtheme. But that means that I'm going to have to change the name of the theme, which can mean having to go back and do all the theme and block settings again. I really don't like manual work, so this time I…
Planet Drupal You probably know that all Drupal core patches and commits get tested using the simpletest testing system, but you may not know how. Essentially, every time a patch is posted and placed in the "Needs Review" status on Drupal.org, and every time a commit is made, the information is sent off to qa.drupal.org, which then farms it out to testing working machines we call testbots. Well,…
Planet Drupal git git rebase Even if you've just arrived into the Gitworld, you've already noticed that things are really fast and flexible. Some people claim that the most important thing about the distributed nature of Git is that you can work on an airplane, but I claim that's totally bogus. The coolest thing about the distributed nature of Git is that you can fool around all you want, and try…
Planet Drupal git git rebase Back in the bad old days (like 2 weeks ago) there was exactly one way to create patches and exactly one way to apply them. Now we have so many formats and so many ways to work it can be mind boggling. As a community, we're going to have to come to a consensus on which of these many options we prefer. I'm going to take a quick look at the options and how to work among…
git Planet Drupal Creating topic branches (also called "feature branches") is easy in Git and is one of the best things about Git. Sometimes we also want to get those pushed from our local repo for various reasons: To make sure it's safe on another server (for backup). To let others review it. To let others build upon it. Here we'll just be dealing with #1 and #2, and not talking about how to…
Planet Drupal Book Reviews (Disclaimer: The book for review was provided gratis by the publisher.) Drupal 7 First Look , by Mark Noble (Packt) should probably be named "What Drupal 6 Developers Need to Know about Drupal 7". It would kind of make sense then. If you need a book-length (252-page) introduction to what's changed in D7, this is a lot better than reading the horrendous D7 Module Upgrade…