Skip to main content
Apr 07, 2026 #drupal

Dynamic type expressions in Drupal config schema

Drupal's config schema YAML supports dynamic expressions inside square brackets that resolve to values from the surrounding configuration data at runtime. Most developers have seen them — [%parent.type] in field formatter schema is a classic example — but few understand exactly how they work or when to use them.

Mar 24, 2026

Catch @todo comments referencing the current issue

When making code changes or fixing issues, it's easy to leave @todo comments behind. Sometimes they mark areas waiting on an upstream fix, sometimes they're reminders that never got revisited. Either way, they accumulate — and the ones tied to the specific issue you're working on should be resolved before the MR merges.

#drupal  #phpstan-drupal
Mar 10, 2026

The nightmare of permissions and OAuth scopes in Drupal

Drupal's role-based access control is one of its strengths. Permissions and roles are well-understood, and the system is mature. But the moment you step outside the standard cookie-based session — say, into OAuth with the authorization code flow — you hit a wall that the core permission model never anticipated.

#drupal  #api
Mar 03, 2026

drupalorg-cli 0.8.0: GitLab issue fork and merge request commands

The 0.7.0 release was housekeeping — fixing the release notes command and clearing out deprecation warnings. 0.8.0 has two goals: add native GitLab issue fork and merge request commands, and make the CLI useful for developers using AI agents to assist with Drupal.org issues.
#drupal
Dec 09, 2025

Automating Drupal release notes in Dependabot PRs

I maintain drupal-mrn.dev, a tool widely used by maintainers to generate release notes for Drupal modules. It simplifies the changelog process, but consuming those notes has remained a manual step for site architects reviewing updates.
#drupal  #dependabot  #github
Dec 02, 2025

Preventing a `drush updb` from clearing your caches

By default, drush updb clears the cache after applying database updates. For deployments where you want to avoid an unnecessary performance hit, you can prevent this default behavior using a Drush pre-command hook. The updb command has a --cache-clear flag that you can set up in your CI workflow, but what about local testing?

#drupal  #drush
Aug 29, 2025

Simplytest back up and running!

If you've been a user of Simplytest, I've just completed a round of maintenance, and everything should be up and running again. The service must have been spamming the Drupal.org APIs and caused itself to get blocked. I've worked with the DA team, and now Simplytest can make API requests again to get project and release data.

#drupal  #simplytest.me
Jun 02, 2025

Why I've self-nominated for the Drupal Association At-Large Board Seat at this moment

I had been considering a self-nomination for the Drupal Association At-Large Board Seat a few times. This year, I decided to throw my hat into the ring. I've been a bit busy with baseball season kicking off (three kids, three teams 🫠) that I haven't written a blog yet, but I will, explaining why I've considered now the right time. 

#drupal