Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

Drupal CMS development repository

WARNING: This repository is only for contributing to Drupal CMS. Do not use it to build sites. If you want to give Drupal CMS a try, visit its project page.

Getting Started

To contribute to Drupal CMS, you'll need DDEV, which is our officially supported platform for contribution. Install it on your machine, then follow these instructions:

  1. Follow the instructions to clone this repository.
  2. At the command line, go into the repository root and run ddev launch.

Code of Conduct

Drupal CMS has adopted a code of conduct that we expect all participants to adhere to.

Getting Help

Find us in the #drupal-cms-development channel in Drupal Slack.

Known Issues

  • You cannot use Project Browser (or any module based on the core Package Manager module) to install new extensions into the DDEV project. You can install extensions (or apply recipes) that are already present, though.

Useful Commands

Applying a Recipe

ddev drush recipe ../recipes/NAME_OF_RECIPE

Running Tests

Once the project's containers are up and running (run ddev start to ensure that), you can use the following commands to run Drupal CMS's tests.

Run all tests, in all recipes:

ddev test

Run all tests in a single recipe:

ddev test recipes/NAME_OF_RECIPE

Run all end-to-end (Cypress) tests, in all recipes:

ddev npm test

Run all end-to-end tests in a single recipe:

ddev npm test -- --spec="recipes/NAME_OF_RECIPE/tests/e2e/*.cy.js"

Run all PHPUnit tests in a single recipe:

ddev exec phpunit -c web/core recipes/NAME_OF_RECIPE

Run a single PHPUnit test:

ddev exec phpunit -c web/core path/to/test/file.php

Run Cypress with custom options.

ddev npm test -- CUSTOM_OPTIONS...

Run PHPUnit with custom options.

ddev exec phpunit CUSTOM_OPTIONS...

Reinstalling Drupal CMS

Reinstall with the currently installed dependencies:

ddev drush site:install --yes

Reinstall via the UI, with the currently installed dependencies:

ddev drush sql:drop --yes && ddev launch

Delete and reinstall all dependencies:

ddev exec rm -r -f vendor web composer.lock && ddev restart