diff --git a/drupal/Makefile b/drupal/Makefile index 952b28f..1db52f5 100644 --- a/drupal/Makefile +++ b/drupal/Makefile @@ -55,9 +55,36 @@ debug: (XDEBUG=1 ./.devtools/start && sleep 1 && [ "$$(./.devtools/info xdebug)" = "enabled" ] && echo "Enabled XDebug. Run 'make start' to disable." || (echo "Failed to enable XDebug." && exit 1)) # Allow running Drush commands with `make drush `. +# +# Every target this Makefile defines, so a Drush argument that collides with +# one can be caught below. +MAKE_TARGETS := help build assemble provision start stop info describe debug \ + drush login delete destroy reset + ifeq (drush,$(firstword $(MAKECMDGOALS))) DRUSH_RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) - $(eval $(DRUSH_RUN_ARGS):;@:) + + # Swallow the trailing goals so make does not try to build them. This uses a + # match-anything rule rather than `$(eval $(DRUSH_RUN_ARGS):;@:)`, because + # almost every Drush command is namespaced with a colon and make reads + # `tome:export:` as a rule of its own, failing with "target pattern contains + # no '%'". Make cannot have a colon in a target name at all, so a + # match-anything rule is the only way to accept those goals. + # + # It only applies to goals with no rule of their own, though, so a Drush + # argument that happens to share a name with a real target (`make drush help`) + # would run Drush *and* that target. Refuse that rather than quietly do both. + DRUSH_GOAL_CLASH := $(filter $(MAKE_TARGETS),$(DRUSH_RUN_ARGS)) + ifneq ($(DRUSH_GOAL_CLASH),) + $(error `$(DRUSH_GOAL_CLASH)` is also a make target, so `make drush \ + $(DRUSH_RUN_ARGS)` would run both. Use: make drush \ + DRUSH_RUN_ARGS="$(DRUSH_RUN_ARGS)") + endif + + # Flags cannot be goals either, because make claims them for itself, so + # `make drush tome:export --yes` never reaches Drush. Same escape hatch. + %: + @: endif drush: diff --git a/drupal/composer.json b/drupal/composer.json index 67d1f2a..17ec5a7 100644 --- a/drupal/composer.json +++ b/drupal/composer.json @@ -110,7 +110,9 @@ "Fix ViewsPathTranslatorSubscriber crash on views with no JSON:API route": "patches/druxt-views-path-translator-route-name.patch" }, "drupal/tome": { - "Fix subprocess commands built with a joined string, not an argv array": "patches/tome-process-array-not-string.patch" + "Fix subprocess commands built with a joined string, not an argv array": "patches/tome-process-array-not-string.patch", + "Declare normalizer supported types so entity-specific normalizers are used": "patches/tome-normalizer-supported-types.patch", + "Sort the content index so its order does not depend on export order": "patches/tome-deterministic-content-index.patch" } } } diff --git a/drupal/composer.lock b/drupal/composer.lock index 5740299..538f832 100644 --- a/drupal/composer.lock +++ b/drupal/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9171b1672f197bd6c82ccdaf6b4ce05a", + "content-hash": "02b3acaa59077d8a5207710ce486c9a1", "packages": [ { "name": "asm89/stack-cors", diff --git a/drupal/config/block_content.type.basic.yml b/drupal/config/block_content.type.basic.yml index 0312915..dff30ec 100644 --- a/drupal/config/block_content.type.basic.yml +++ b/drupal/config/block_content.type.basic.yml @@ -6,5 +6,5 @@ _core: default_config_hash: zglzjmYxi0G0ag9MZ02y0LSJOdpWRwJxyP_OvFojFyo id: basic label: 'Basic block' -revision: 0 +revision: false description: 'A basic block contains a title and a body.' diff --git a/drupal/config/core.entity_form_mode.user.register.yml b/drupal/config/core.entity_form_mode.user.register.yml index 458c4fa..6dc7fc0 100644 --- a/drupal/config/core.entity_form_mode.user.register.yml +++ b/drupal/config/core.entity_form_mode.user.register.yml @@ -8,5 +8,6 @@ _core: default_config_hash: flXhTcp55yLcyy7ZLOhPGKGZobZQJdkAFVWV3LseiuI id: user.register label: Register +description: null targetEntityType: user cache: true diff --git a/drupal/config/core.entity_view_mode.block_content.full.yml b/drupal/config/core.entity_view_mode.block_content.full.yml index 4f4d35f..b054342 100644 --- a/drupal/config/core.entity_view_mode.block_content.full.yml +++ b/drupal/config/core.entity_view_mode.block_content.full.yml @@ -8,5 +8,6 @@ _core: default_config_hash: 4tedlMuvQjDOdvHdw86_e-2Rt78aR7TGFMfOK8Ejppg id: block_content.full label: Full +description: null targetEntityType: block_content cache: true diff --git a/drupal/config/core.entity_view_mode.comment.full.yml b/drupal/config/core.entity_view_mode.comment.full.yml index e84e4de..bee6ed4 100644 --- a/drupal/config/core.entity_view_mode.comment.full.yml +++ b/drupal/config/core.entity_view_mode.comment.full.yml @@ -8,5 +8,6 @@ _core: default_config_hash: K7eNlfU7NEUajz01wItywZklr2oaPgL6s1_97fmDXLA id: comment.full label: 'Full comment' +description: null targetEntityType: comment cache: true diff --git a/drupal/config/core.entity_view_mode.node.full.yml b/drupal/config/core.entity_view_mode.node.full.yml index 20a9f0d..818e238 100644 --- a/drupal/config/core.entity_view_mode.node.full.yml +++ b/drupal/config/core.entity_view_mode.node.full.yml @@ -8,5 +8,6 @@ _core: default_config_hash: ElrtInxGjZd7GaapJ5O9n-ugi2hG2IxFivtgn0tHOsk id: node.full label: 'Full content' +description: null targetEntityType: node cache: true diff --git a/drupal/config/core.entity_view_mode.node.rss.yml b/drupal/config/core.entity_view_mode.node.rss.yml index 2dd73d5..d760b2e 100644 --- a/drupal/config/core.entity_view_mode.node.rss.yml +++ b/drupal/config/core.entity_view_mode.node.rss.yml @@ -8,5 +8,6 @@ _core: default_config_hash: vlYzr-rp2f9NMp-Qlr4sFjlqRq-90mco5-afLNGwCrU id: node.rss label: RSS +description: null targetEntityType: node cache: true diff --git a/drupal/config/core.entity_view_mode.node.search_index.yml b/drupal/config/core.entity_view_mode.node.search_index.yml index 67c2314..716a633 100644 --- a/drupal/config/core.entity_view_mode.node.search_index.yml +++ b/drupal/config/core.entity_view_mode.node.search_index.yml @@ -8,5 +8,6 @@ _core: default_config_hash: fVFfJv_GzBRE-wpRHbfD5a3VjnhbEOXG6lvRd3uaccY id: node.search_index label: 'Search index' +description: null targetEntityType: node cache: true diff --git a/drupal/config/core.entity_view_mode.node.search_result.yml b/drupal/config/core.entity_view_mode.node.search_result.yml index 3789d54..e32ee69 100644 --- a/drupal/config/core.entity_view_mode.node.search_result.yml +++ b/drupal/config/core.entity_view_mode.node.search_result.yml @@ -8,5 +8,6 @@ _core: default_config_hash: 6GCOQ-jP2RbdbHA5YWQ6bT8CfGbqrBYKOSC_XY4E3ZM id: node.search_result label: 'Search result highlighting input' +description: null targetEntityType: node cache: true diff --git a/drupal/config/core.entity_view_mode.node.teaser.yml b/drupal/config/core.entity_view_mode.node.teaser.yml index 01b61b9..2ebd773 100644 --- a/drupal/config/core.entity_view_mode.node.teaser.yml +++ b/drupal/config/core.entity_view_mode.node.teaser.yml @@ -8,5 +8,6 @@ _core: default_config_hash: Mz9qWr1kUYK0mjRAGDsr5XS6PvtZ24en_7ndt-pyWe4 id: node.teaser label: Teaser +description: null targetEntityType: node cache: true diff --git a/drupal/config/core.entity_view_mode.taxonomy_term.full.yml b/drupal/config/core.entity_view_mode.taxonomy_term.full.yml index 4a47105..2613d5f 100644 --- a/drupal/config/core.entity_view_mode.taxonomy_term.full.yml +++ b/drupal/config/core.entity_view_mode.taxonomy_term.full.yml @@ -8,5 +8,6 @@ _core: default_config_hash: '-PPKjsNQPvoIDjOuUAvlLocYD976MNjb9Zpgyz5_BWE' id: taxonomy_term.full label: 'Taxonomy term page' +description: null targetEntityType: taxonomy_term cache: true diff --git a/drupal/config/core.entity_view_mode.user.compact.yml b/drupal/config/core.entity_view_mode.user.compact.yml index 779ae17..3fa1b67 100644 --- a/drupal/config/core.entity_view_mode.user.compact.yml +++ b/drupal/config/core.entity_view_mode.user.compact.yml @@ -8,5 +8,6 @@ _core: default_config_hash: 71CSAr_LNPcgu6D6jI4INl1KATkahmeyUFBETAWya8g id: user.compact label: Compact +description: null targetEntityType: user cache: true diff --git a/drupal/config/core.entity_view_mode.user.full.yml b/drupal/config/core.entity_view_mode.user.full.yml index 62ecb60..3921796 100644 --- a/drupal/config/core.entity_view_mode.user.full.yml +++ b/drupal/config/core.entity_view_mode.user.full.yml @@ -8,5 +8,6 @@ _core: default_config_hash: mQIF_foYjmnVSr9MpcD4CTaJE_FpO1AyDd_DskztGhM id: user.full label: 'User account' +description: null targetEntityType: user cache: true diff --git a/drupal/config/core.extension.yml b/drupal/config/core.extension.yml index c06a489..499b3e0 100644 --- a/drupal/config/core.extension.yml +++ b/drupal/config/core.extension.yml @@ -32,7 +32,6 @@ module: menu_link_content: 0 menu_ui: 0 mysql: 0 - sqlite: 0 node: 0 options: 0 page_cache: 0 @@ -41,6 +40,7 @@ module: search: 0 serialization: 0 shortcut: 0 + sqlite: 0 system: 0 taxonomy: 0 text: 0 diff --git a/drupal/config/field.field.block_content.basic.body.yml b/drupal/config/field.field.block_content.basic.body.yml index bbb851e..a2e0296 100644 --- a/drupal/config/field.field.block_content.basic.body.yml +++ b/drupal/config/field.field.block_content.basic.body.yml @@ -22,4 +22,5 @@ default_value_callback: '' settings: display_summary: false required_summary: false + allowed_formats: { } field_type: text_with_summary diff --git a/drupal/config/field.field.comment.comment.comment_body.yml b/drupal/config/field.field.comment.comment.comment_body.yml index 577b922..effaa10 100644 --- a/drupal/config/field.field.comment.comment.comment_body.yml +++ b/drupal/config/field.field.comment.comment.comment_body.yml @@ -19,5 +19,6 @@ required: true translatable: true default_value: { } default_value_callback: '' -settings: { } +settings: + allowed_formats: { } field_type: text_long diff --git a/drupal/config/field.field.node.article.body.yml b/drupal/config/field.field.node.article.body.yml index 3df86a9..6fd623b 100644 --- a/drupal/config/field.field.node.article.body.yml +++ b/drupal/config/field.field.node.article.body.yml @@ -22,4 +22,5 @@ default_value_callback: '' settings: display_summary: true required_summary: false + allowed_formats: { } field_type: text_with_summary diff --git a/drupal/config/field.field.node.page.body.yml b/drupal/config/field.field.node.page.body.yml index 7b953e1..7f04b54 100644 --- a/drupal/config/field.field.node.page.body.yml +++ b/drupal/config/field.field.node.page.body.yml @@ -22,4 +22,5 @@ default_value_callback: '' settings: display_summary: true required_summary: false + allowed_formats: { } field_type: text_with_summary diff --git a/drupal/config/filter.format.basic_html.yml b/drupal/config/filter.format.basic_html.yml index 671745f..827406c 100644 --- a/drupal/config/filter.format.basic_html.yml +++ b/drupal/config/filter.format.basic_html.yml @@ -10,15 +10,12 @@ name: 'Basic HTML' format: basic_html weight: 0 filters: - filter_html: - id: filter_html - provider: filter + editor_file_reference: + id: editor_file_reference + provider: editor status: true - weight: -10 - settings: - allowed_html: '