Skip to content

Latest commit

 

History

History
137 lines (86 loc) · 3.96 KB

File metadata and controls

137 lines (86 loc) · 3.96 KB

Quickstart: Drupal Core Development on coder.ddev.com

Cloud-hosted DDEV workspaces for Drupal core development. Full environment — Drupal core clone, running site, drush — ready when the startup script completes.

Open in Coder


1. Log in

Go to coder.ddev.com and sign in with GitHub.


2. Create a workspace

Click the button above, or go to Create Workspace → select the drupal-core template → click Create Workspace.

Wait for the startup script to complete. Watch progress in the Logs tab.


3. Open your environment

Once the workspace is running, click DDEV Web in the dashboard to open the Drupal site, or VS Code to open the editor (VS Code for Web, pre-pointed at ~/drupal-core).

The running site has the Umami demo profile installed. Admin credentials: admin / admin.


Code layout

~/drupal-core/           # Drupal core git clone — edit files here
├── core/                # Drupal core source
├── index.php            # Entry point
├── .ddev/               # DDEV config
└── composer.local.json  # Local dependencies (drush, dev modules)

Edit files directly in ~/drupal-core/ — changes are immediately reflected in the running site.


Common commands (run in VS Code terminal or coder ssh <workspace>)

# Get a one-time admin login link
ddev drush uli

# Clear cache
ddev drush cr

# Run Drupal tests (provided by ddev-drupal-dev add-on)
ddev phpunit core/modules/node

# Install a contrib module for development
ddev add-module token

# Open the site in your browser
ddev launch

# SSH into the web container
ddev ssh

Working on a Drupal issue

The fastest way: use the Drupal Issue Picker. Paste a drupal.org issue URL, issue number, or project URL — it auto-detects whether the issue is for Drupal core or a contrib module/theme, fetches the available branches, and opens a pre-configured workspace with the issue branch already checked out. Entering a project URL (e.g. drupal.org/project/token) or bare machine name launches a plain contrib dev workspace without a specific issue.

When working on an issue, the workspace surfaces issue info in several places:

  • Workspace resource page — the issue_url metadata item links directly to the drupal.org issue
  • ~/WELCOME.txt — shows the issue number, title, and URL
  • Drupal site name — set to #NNNN: issue title during install (visible in the site header)

To push your changes back:

cd ~/drupal-core

# ... make changes ...

# Push to the issue fork (remote is already added by the setup)
git push issue HEAD

Then create or update the merge request on drupal.org.

First contribution workflow (manual)

If you prefer to set up manually:

# In the workspace terminal:
cd ~/drupal-core

# Create a branch
git checkout -b my-fix

# ... make changes ...

# Add a fork remote and push
git remote add fork https://git.drupalcode.org/issue/drupal-NNNNN.git
git push fork my-fix

Then create a merge request on drupal.org.


Workspace lifecycle

Action Effect
Stop workspace Containers stop; your files persist on disk
Start workspace No reinstall needed; picks up where you left off
Delete workspace All data deleted permanently

Troubleshooting

# Check setup status
cat ~/SETUP_STATUS.txt

# View setup log
tail -50 /tmp/drupal-setup.log

# Check DDEV status
ddev describe

See also: full getting-started guide · DDEV docs · Drupal core contribution guide · ddev-drupal-dev add-on