Canvas Dev Humanify recipe update
Use this skill only when updating recipes/canvas_dev_humanify after content or
js_component changes.
Scope
- •Work in the project root (
.). - •Primary targets:
- •
recipes/canvas_dev_humanify/config - •
recipes/canvas_dev_humanify/content
- •
- •Use DDEV-wrapped commands only.
Workflow
- •Take a safety snapshot before destructive install checks.
- •
ddev snapshot
- •Export active config to a temporary directory and copy back only
canvas.js_component.*.ymlfiles used by Humanify.
- •
ddev drush cex --destination=../<tmp_dir> -y - •Copy
canvas.js_component.*.ymlfrom<tmp_dir>torecipes/canvas_dev_humanify/config/.
- •Export default content with references for the
canvas_pageentity included inrecipes/canvas_dev_humanify.
- •Get UUID from
recipes/canvas_dev_humanify/content/canvas_page/*.yml. - •Resolve entity ID:
- •
ddev drush php:eval "\$e = \Drupal::service('entity.repository')->loadEntityByUuid('canvas_page', '<uuid>'); print \$e ? \$e->id() : '';"
- •
- •Export:
- •
ddev drush dcer canvas_page <id> --folder=../recipes/canvas_dev_humanify/content -y
- •
- •Normalize exported
canvas_pagecontent to pass recipe import.
- •File:
- •
recipes/canvas_dev_humanify/content/canvas_page/4fca895c-5da4-4fd5-86d1-c42788254bb6.yml
- •
- •Required cleanup:
- •Convert root
parent_uuid: ''toparent_uuid: null - •Convert root
slot: ''toslot: null - •Remove empty
label: ''rows
- •Convert root
- •Remove unstable config metadata from
js_componentconfig entities inrecipes/canvas_dev_humanify.
- •Remove
uuid:lines from all:- •
recipes/canvas_dev_humanify/config/canvas.js_component*.yml
- •
- •Remove
_coreblocks (includingdefault_config_hash) from the same files.
- •Run formatting fixes from the project root.
- •
npm run code:fix - •This runs Prettier.
Validation
Validate install flow:
- •
ddev si - •
ddev drush st
If install fails:
- •Always rollback:
- •
ddev snapshot restore <snapshot_name>
- •Troubleshoot and fix the cause.
- •Retry install validation:
- •
ddev si - •
ddev drush st
Troubleshooting notes
- •
ddev drushcommand names here are from this repo's current Drush setup:- •
config:export(cex) - •
default-content:export-references(dcer)
- •
- •
ddev simay show non-fatal schema warnings forai_agents_testviews. - •If
dcerfails due exporter/type compatibility errors, stop and escalate to a separate backend/PHP task instead of patching module PHP in this workflow.