Canvas Contribution Workflow
This skill extends the general drupal-contrib-mgmt skill with Canvas-specific details.
For the general drupal.org contribution workflow (issue creation, issue forks, commit format, HTML formatting), see the drupal-contrib-mgmt skill.
Canvas-Specific Setup
Repository Structure
- Canvas Contrib Repo:
~/Sites/canvas-contrib/ - GG App Repo:
~/Sites/myproject/
Initial Clone (One-Time)
bashcd ~/Sites git clone git@git.drupal.org:project/canvas.git canvas-contrib
Canvas UI Development
Canvas has a React-based UI that requires building.
Build Commands
bashcd ~/Sites/canvas-contrib/ui npm install npm run lint # Check for lint errors npm run lint -- --fix # Auto-fix lint errors npm run build # Build for production
After Applying Patches in GG
bashcd ~/Sites/myproject composer reinstall drupal/canvas cd docroot/modules/contrib/canvas/ui && npm run build ddev drush cr
Canvas Issue Fork Example
Using issue #3569725 as an example:
bashcd ~/Sites/canvas-contrib # Add fork remote git remote add canvas-3569725 git@git.drupal.org:issue/canvas-3569725.git git fetch canvas-3569725 # Checkout issue branch git checkout -b '3569725-auto-scale-to-fit' --track canvas-3569725/'3569725-auto-scale-to-fit' # Make changes, then commit git add ui/src/path/to/files git commit -m "$(cat <<'EOF' Issue #3569725: Add auto scale-to-fit feature - Feature detail 1 - Feature detail 2 EOF )" # Push git push canvas-3569725 3569725-auto-scale-to-fit
Key Canvas Files
| Area | Location |
|---|---|
| UI source | ui/src/ |
| UI components | ui/src/features/ |
| CSS modules | ui/src/**/*.module.css |
| PHP module | src/ |
| Tests | tests/ |
Canvas Project Links
- Project: https://www.drupal.org/project/canvas
- Issue Queue: https://www.drupal.org/project/issues/canvas
- Documentation: https://project.pages.drupalcode.org/canvas/

