From 1082bca9f63ee0a0ace8d629abbe859cc99a3cf5 Mon Sep 17 00:00:00 2001
From: webchick <drupal@webchick.net>
Date: Tue, 8 Oct 2019 14:20:58 -0700
Subject: [PATCH] Issue #3086148 by greg.1.anderson, hussainweb, Mixologic:
 Make scaffold "extra" data key conform with plugin command name

---
 composer/Plugin/Scaffold/AllowedPackages.php  |  2 +-
 .../GenerateAutoloadReferenceFile.php         |  2 +-
 composer/Plugin/Scaffold/Handler.php          |  8 ++---
 composer/Plugin/Scaffold/ManageOptions.php    |  2 +-
 composer/Plugin/Scaffold/README.md            | 32 +++++++++----------
 composer/Plugin/Scaffold/ScaffoldOptions.php  |  8 ++---
 composer/Template/LegacyProject/composer.json |  2 +-
 .../Template/RecommendedProject/composer.json |  2 +-
 core/composer.json                            |  2 +-
 .../Scaffold/Functional/ComposerHookTest.php  |  2 +-
 .../composer-hooks-fixture/composer.json.tmpl |  2 +-
 .../composer.json.tmpl                        |  2 +-
 .../drupal-assets-fixture/composer.json       |  2 +-
 .../composer.json.tmpl                        |  2 +-
 .../drupal-core-fixture/composer.json         |  2 +-
 .../composer.json.tmpl                        |  2 +-
 .../composer.json.tmpl                        |  2 +-
 .../composer.json.tmpl                        |  2 +-
 .../composer.json.tmpl                        |  2 +-
 .../fixtures/drupal-drupal/composer.json.tmpl |  2 +-
 .../drupal-profile/composer.json.tmpl         |  2 +-
 .../empty-fixture-allowing-core/composer.json |  2 +-
 .../profile-with-append/composer.json.tmpl    |  2 +-
 .../composer.json.tmpl                        |  2 +-
 .../composer.json                             |  2 +-
 .../composer.json                             |  2 +-
 .../scaffold-override-fixture/composer.json   |  2 +-
 .../Drupal/Tests/ComposerIntegrationTest.php  |  4 +--
 .../test_composer_project_templates.sh        |  2 ++
 29 files changed, 52 insertions(+), 50 deletions(-)

diff --git a/composer/Plugin/Scaffold/AllowedPackages.php b/composer/Plugin/Scaffold/AllowedPackages.php
index 6bed62a1c3e5..ca46d62dd17c 100644
--- a/composer/Plugin/Scaffold/AllowedPackages.php
+++ b/composer/Plugin/Scaffold/AllowedPackages.php
@@ -160,7 +160,7 @@ protected function recursiveGetAllowedPackages(array $packages_to_allow, array $
   protected function evaluateNewPackages(array $allowed_packages) {
     foreach ($this->newPackages as $name => $newPackage) {
       if (!array_key_exists($name, $allowed_packages)) {
-        $this->io->write("Not scaffolding files for <comment>{$name}</comment>, because it is not listed in the element 'extra.composer-scaffold.allowed-packages' in the root-level composer.json file.");
+        $this->io->write("Not scaffolding files for <comment>{$name}</comment>, because it is not listed in the element 'extra.drupal-scaffold.allowed-packages' in the root-level composer.json file.");
       }
       else {
         $this->io->write("Package <comment>{$name}</comment> has scaffold operations, and is already allowed in the root-level composer.json file.");
diff --git a/composer/Plugin/Scaffold/GenerateAutoloadReferenceFile.php b/composer/Plugin/Scaffold/GenerateAutoloadReferenceFile.php
index 55e27debfe04..cfbd6c1523bd 100644
--- a/composer/Plugin/Scaffold/GenerateAutoloadReferenceFile.php
+++ b/composer/Plugin/Scaffold/GenerateAutoloadReferenceFile.php
@@ -105,7 +105,7 @@ protected static function autoLoadContents($relative_autoload_path) {
  * @file
  * Includes the autoloader created by Composer.
  *
- * This file was generated by composer-scaffold.
+ * This file was generated by drupal-scaffold.
  *.
  * @see composer.json
  * @see index.php
diff --git a/composer/Plugin/Scaffold/Handler.php b/composer/Plugin/Scaffold/Handler.php
index 071be6a8e0ca..e96b6f3820c8 100644
--- a/composer/Plugin/Scaffold/Handler.php
+++ b/composer/Plugin/Scaffold/Handler.php
@@ -24,12 +24,12 @@ class Handler {
   /**
    * Composer hook called before scaffolding begins.
    */
-  const PRE_COMPOSER_SCAFFOLD_CMD = 'pre-composer-scaffold-cmd';
+  const PRE_DRUPAL_SCAFFOLD_CMD = 'pre-drupal-scaffold-cmd';
 
   /**
    * Composer hook called after scaffolding completes.
    */
-  const POST_COMPOSER_SCAFFOLD_CMD = 'post-composer-scaffold-cmd';
+  const POST_DRUPAL_SCAFFOLD_CMD = 'post-drupal-scaffold-cmd';
 
   /**
    * The Composer service.
@@ -148,7 +148,7 @@ public function scaffold() {
 
     // Call any pre-scaffold scripts that may be defined.
     $dispatcher = new EventDispatcher($this->composer, $this->io);
-    $dispatcher->dispatch(self::PRE_COMPOSER_SCAFFOLD_CMD);
+    $dispatcher->dispatch(self::PRE_DRUPAL_SCAFFOLD_CMD);
 
     // Fetch the list of file mappings from each allowed package and normalize
     // them.
@@ -177,7 +177,7 @@ public function scaffold() {
     $gitIgnoreManager->manageIgnored($scaffold_results, $scaffold_options);
 
     // Call post-scaffold scripts.
-    $dispatcher->dispatch(self::POST_COMPOSER_SCAFFOLD_CMD);
+    $dispatcher->dispatch(self::POST_DRUPAL_SCAFFOLD_CMD);
   }
 
   /**
diff --git a/composer/Plugin/Scaffold/ManageOptions.php b/composer/Plugin/Scaffold/ManageOptions.php
index b9013b6ee1e5..d54cf017bfc2 100644
--- a/composer/Plugin/Scaffold/ManageOptions.php
+++ b/composer/Plugin/Scaffold/ManageOptions.php
@@ -10,7 +10,7 @@
  * Per-project options from the 'extras' section of the composer.json file.
  *
  * Projects that describe scaffold files do so via their scaffold options.
- * This data is pulled from the 'composer-scaffold' portion of the extras
+ * This data is pulled from the 'drupal-scaffold' portion of the extras
  * section of the project data.
  */
 class ManageOptions {
diff --git a/composer/Plugin/Scaffold/README.md b/composer/Plugin/Scaffold/README.md
index 9b9d1b95b8e9..ae696cea0d67 100644
--- a/composer/Plugin/Scaffold/README.md
+++ b/composer/Plugin/Scaffold/README.md
@@ -53,9 +53,9 @@ Example: Permit scaffolding from the project `drupal/core`
   "name": "my/project",
   ...
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
-        "drupal/core",
+        "drupal/core"
       ],
       ...
     }
@@ -89,7 +89,7 @@ so via the `locations` mapping, as shown below:
   "name": "my/project",
   ...
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "locations": {
         "web-root": "./docroot"
       },
@@ -115,7 +115,7 @@ of the `robots.txt` file provided by `drupal/core`:
   "name": "my/project",
   ...
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/robots.txt": {
           "append": "assets/my-robots-additions.txt",
@@ -128,13 +128,13 @@ It is also possible to prepend to a scaffold file instead of, or in addition to
 appending by including a "prepend" entry that provides the relative path to the
 file to prepend to the scaffold file.
 
-The example below demonstrates the use of the `post-composer-scaffold-cmd` hook
+The example below demonstrates the use of the `post-drupal-scaffold-cmd` hook
 to patch the `.htaccess` file using a patch.
 ```
   "name": "my/project",
   ...
   "scripts": {
-    "post-composer-scaffold-cmd": [
+    "post-drupal-scaffold-cmd": [
       "cd docroot && patch -p1 <../patches/htaccess-ssl.patch"
     ]
   }
@@ -152,7 +152,7 @@ web root in the snippet below.
   "name": "drupal/assets",
   ...
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/robots.txt": "assets/robots.txt",
         ...
@@ -171,7 +171,7 @@ setting the value for the scaffold file to exclude to `false`:
   "name": "my/project",
   ...
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/robots.txt": false
       }
@@ -193,7 +193,7 @@ the `overwrite` flag to `false`, as shown in the example below:
 {
   "name": "service-provider/d8-scaffold-files",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/sites/default/settings.php": {
           "mode": "replace",
@@ -221,7 +221,7 @@ to update it.
 
 ## Specifications
 
-Reference section for the configuration directives for the "composer-scaffold"
+Reference section for the configuration directives for the "drupal-scaffold"
 section of the "extra" section of a `composer.json` file appear below.
 
 ### allowed-packages
@@ -367,7 +367,7 @@ Sample composer.json for a project that relies on packages that use composer-sca
     "sort-packages": true
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "drupal/core"
       ],
@@ -391,7 +391,7 @@ Sample composer.json for drupal/core, with assets placed in a different project:
 {
   "name": "drupal/core",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "drupal/assets",
       ]
@@ -406,7 +406,7 @@ Sample composer.json for composer-scaffold files in drupal/assets:
 {
   "name": "drupal/assets",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/.csslintrc": "assets/.csslintrc",
         "[web-root]/.editorconfig": "assets/.editorconfig",
@@ -435,7 +435,7 @@ Sample composer.json for a library that implements composer-scaffold:
 {
   "name": "service-provider/d8-scaffold-files",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/sites/default/settings.php": "assets/sites/default/settings.php"
       }
@@ -450,7 +450,7 @@ Append to robots.txt:
 {
   "name": "service-provider/d8-scaffold-files",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/robots.txt": {
           "append": "assets/my-robots-additions.txt",
@@ -464,7 +464,7 @@ Append to robots.txt:
 Patch a file after it's copied:
 
 ```
-"post-composer-scaffold-cmd": [
+"post-drupal-scaffold-cmd": [
   "cd docroot && patch -p1 <../patches/htaccess-ssl.patch"
 ]
 ```
diff --git a/composer/Plugin/Scaffold/ScaffoldOptions.php b/composer/Plugin/Scaffold/ScaffoldOptions.php
index 23172ad8f7c8..0a963c788d63 100644
--- a/composer/Plugin/Scaffold/ScaffoldOptions.php
+++ b/composer/Plugin/Scaffold/ScaffoldOptions.php
@@ -6,7 +6,7 @@
  * Per-project options from the 'extras' section of the composer.json file.
  *
  * Projects that describe scaffold files do so via their scaffold options. This
- * data is pulled from the 'composer-scaffold' portion of the extras section of
+ * data is pulled from the 'drupal-scaffold' portion of the extras section of
  * the project data.
  */
 class ScaffoldOptions {
@@ -22,7 +22,7 @@ class ScaffoldOptions {
    * ScaffoldOptions constructor.
    *
    * @param array $options
-   *   The scaffold options taken from the 'composer-scaffold' section.
+   *   The scaffold options taken from the 'drupal-scaffold' section.
    */
   protected function __construct(array $options) {
     $this->options = $options + [
@@ -49,7 +49,7 @@ protected function __construct(array $options) {
    *   True if scaffold options have been declared
    */
   public static function hasOptions(array $extras) {
-    return array_key_exists('composer-scaffold', $extras);
+    return array_key_exists('drupal-scaffold', $extras);
   }
 
   /**
@@ -62,7 +62,7 @@ public static function hasOptions(array $extras) {
    *   The scaffold options object representing the provided scaffold options
    */
   public static function create(array $extras) {
-    $options = static::hasOptions($extras) ? $extras['composer-scaffold'] : [];
+    $options = static::hasOptions($extras) ? $extras['drupal-scaffold'] : [];
     return new self($options);
   }
 
diff --git a/composer/Template/LegacyProject/composer.json b/composer/Template/LegacyProject/composer.json
index 19afd31ac4c0..51aced4574f2 100644
--- a/composer/Template/LegacyProject/composer.json
+++ b/composer/Template/LegacyProject/composer.json
@@ -27,7 +27,7 @@
         "sort-packages": true
     },
     "extra": {
-        "composer-scaffold": {
+        "drupal-scaffold": {
             "locations": {
                 "web-root": "./"
             }
diff --git a/composer/Template/RecommendedProject/composer.json b/composer/Template/RecommendedProject/composer.json
index e57c2521c1dd..98189b3105d7 100644
--- a/composer/Template/RecommendedProject/composer.json
+++ b/composer/Template/RecommendedProject/composer.json
@@ -26,7 +26,7 @@
         "sort-packages": true
     },
     "extra": {
-        "composer-scaffold": {
+        "drupal-scaffold": {
             "locations": {
                 "web-root": "web/"
             }
diff --git a/core/composer.json b/core/composer.json
index 8a5d3bdf89e3..c3ff963124ff 100644
--- a/core/composer.json
+++ b/core/composer.json
@@ -187,7 +187,7 @@
         "autoloader-suffix": "Drupal8"
     },
     "extra": {
-        "composer-scaffold": {
+        "drupal-scaffold": {
             "file-mapping": {
                 "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig",
                 "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes",
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/Functional/ComposerHookTest.php b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/Functional/ComposerHookTest.php
index 51596150efd1..c8e18e1b034c 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/Functional/ComposerHookTest.php
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/Functional/ComposerHookTest.php
@@ -133,7 +133,7 @@ public function testComposerHooks() {
     // get a warning, and it does not scaffold.
     $stdout = $this->mustExec("composer require --no-ansi --no-interaction fixtures/scaffold-override-fixture:dev-master", $sut);
     $this->assertFileNotExists($sut . '/sites/default/default.settings.php');
-    $this->assertContains("Not scaffolding files for fixtures/scaffold-override-fixture, because it is not listed in the element 'extra.composer-scaffold.allowed-packages' in the root-level composer.json file.", $stdout);
+    $this->assertContains("Not scaffolding files for fixtures/scaffold-override-fixture, because it is not listed in the element 'extra.drupal-scaffold.allowed-packages' in the root-level composer.json file.", $stdout);
   }
 
 }
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/composer-hooks-fixture/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/composer-hooks-fixture/composer.json.tmpl
index 15394222e86c..f5f5d2a2866c 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/composer-hooks-fixture/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/composer-hooks-fixture/composer.json.tmpl
@@ -39,7 +39,7 @@
     "fixtures/drupal-core-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-core-fixture",
         "fixtures/scaffold-override-fixture"
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/composer-hooks-nothing-allowed-fixture/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/composer-hooks-nothing-allowed-fixture/composer.json.tmpl
index fccc1d9f241d..33393c3f59cc 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/composer-hooks-nothing-allowed-fixture/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/composer-hooks-nothing-allowed-fixture/composer.json.tmpl
@@ -39,7 +39,7 @@
     "fixtures/drupal-core-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "locations": {
         "web-root": "./"
       },
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-assets-fixture/composer.json b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-assets-fixture/composer.json
index cb45ec5dc4ce..484f6be0e3b0 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-assets-fixture/composer.json
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-assets-fixture/composer.json
@@ -1,7 +1,7 @@
 {
   "name": "fixtures/drupal-assets-fixture",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/.csslintrc": "assets/.csslintrc",
         "[web-root]/.editorconfig": "assets/.editorconfig",
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-composer-drupal-project/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-composer-drupal-project/composer.json.tmpl
index db920ef7a872..ae8877dcc241 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-composer-drupal-project/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-composer-drupal-project/composer.json.tmpl
@@ -40,7 +40,7 @@
     "fixtures/scaffold-override-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-core-fixture",
         "fixtures/scaffold-override-fixture"
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-core-fixture/composer.json b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-core-fixture/composer.json
index 9aa29f55bf64..e52f775cfa72 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-core-fixture/composer.json
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-core-fixture/composer.json
@@ -4,7 +4,7 @@
     "fixtures/drupal-assets-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-assets-fixture"
       ]
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-append-to-append/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-append-to-append/composer.json.tmpl
index af1f421c8718..8beca0280576 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-append-to-append/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-append-to-append/composer.json.tmpl
@@ -40,7 +40,7 @@
     "fixtures/drupal-core-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-core-fixture",
         "fixtures/profile-with-append"
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-missing-scaffold-file/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-missing-scaffold-file/composer.json.tmpl
index fb37876cd8bc..ffe7c9de58c6 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-missing-scaffold-file/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-missing-scaffold-file/composer.json.tmpl
@@ -40,7 +40,7 @@
     "fixtures/scaffold-override-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-core-fixture",
         "fixtures/scaffold-override-fixture"
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-test-append/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-test-append/composer.json.tmpl
index 225ce58dc7ab..ddcad04beed0 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-test-append/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-test-append/composer.json.tmpl
@@ -32,7 +32,7 @@
     "fixtures/drupal-core-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-core-fixture"
       ],
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-test-overwrite/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-test-overwrite/composer.json.tmpl
index 36185fd788ab..cdf1658435b7 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-test-overwrite/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal-test-overwrite/composer.json.tmpl
@@ -40,7 +40,7 @@
     "fixtures/scaffold-override-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-core-fixture",
         "fixtures/scaffold-override-fixture"
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal/composer.json.tmpl
index ece89c71ed1b..96959916a8ee 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-drupal/composer.json.tmpl
@@ -40,7 +40,7 @@
     "fixtures/scaffold-override-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-core-fixture",
         "fixtures/scaffold-override-fixture"
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-profile/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-profile/composer.json.tmpl
index b3e4b76640b7..71559d149edd 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-profile/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/drupal-profile/composer.json.tmpl
@@ -1,7 +1,7 @@
 {
   "name": "fixtures/drupal-profile",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/.htaccess": false
       }
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/empty-fixture-allowing-core/composer.json b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/empty-fixture-allowing-core/composer.json
index 66e96bf38b3c..e718d84af7be 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/empty-fixture-allowing-core/composer.json
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/empty-fixture-allowing-core/composer.json
@@ -1,7 +1,7 @@
 {
   "name": "fixtures/empty-fixture-allowing-core",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-core-fixture"
       ],
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/profile-with-append/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/profile-with-append/composer.json.tmpl
index d67135fcac68..650fb6e4b7ec 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/profile-with-append/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/profile-with-append/composer.json.tmpl
@@ -1,7 +1,7 @@
 {
   "name": "fixtures/profile-with-append",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/robots.txt": {
           "append": "assets/append-to-robots.txt"
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-allowing-empty-fixture/composer.json.tmpl b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-allowing-empty-fixture/composer.json.tmpl
index 772aeca09646..75659d3ec6d2 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-allowing-empty-fixture/composer.json.tmpl
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-allowing-empty-fixture/composer.json.tmpl
@@ -48,7 +48,7 @@
     "fixtures/scaffold-override-fixture": "*"
   },
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "allowed-packages": [
         "fixtures/drupal-core-fixture",
         "fixtures/empty-fixture",
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-with-empty-scaffold-path/composer.json b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-with-empty-scaffold-path/composer.json
index e74df96ff0ae..23548a474fd8 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-with-empty-scaffold-path/composer.json
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-with-empty-scaffold-path/composer.json
@@ -1,7 +1,7 @@
 {
   "name": "fixtures/project-with-empty-scaffold-path",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "locations": {
         "web-root": "./"
       },
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-with-illegal-dir-scaffold/composer.json b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-with-illegal-dir-scaffold/composer.json
index 5cebfd4b57ff..b90b3c0ca80d 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-with-illegal-dir-scaffold/composer.json
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/project-with-illegal-dir-scaffold/composer.json
@@ -1,7 +1,7 @@
 {
   "name": "fixtures/project-with-illegal-dir-scaffold",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "locations": {
         "web-root": "./"
       },
diff --git a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/scaffold-override-fixture/composer.json b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/scaffold-override-fixture/composer.json
index 977af8a76e14..7f3e69452c75 100644
--- a/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/scaffold-override-fixture/composer.json
+++ b/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/fixtures/scaffold-override-fixture/composer.json
@@ -1,7 +1,7 @@
 {
   "name": "fixtures/scaffold-override-fixture",
   "extra": {
-    "composer-scaffold": {
+    "drupal-scaffold": {
       "file-mapping": {
         "[web-root]/sites/default/default.settings.php": "assets/override-settings.php"
       }
diff --git a/core/tests/Drupal/Tests/ComposerIntegrationTest.php b/core/tests/Drupal/Tests/ComposerIntegrationTest.php
index 96753b4d7596..b49f381092bd 100644
--- a/core/tests/Drupal/Tests/ComposerIntegrationTest.php
+++ b/core/tests/Drupal/Tests/ComposerIntegrationTest.php
@@ -204,7 +204,7 @@ public function providerTestExpectedScaffoldFiles() {
   }
 
   /**
-   * Tests core's composer.json extra composer-scaffold file-mappings section.
+   * Tests core's composer.json extra drupal-scaffold file-mappings section.
    *
    * Verify that every file listed in file-mappings exists in its destination
    * path (mapping key) and also at its source path (mapping value), and that
@@ -229,7 +229,7 @@ public function providerTestExpectedScaffoldFiles() {
   public function testExpectedScaffoldFiles($destRelPath, $sourceRelPath, $expectedDestination = '[web-root]') {
     // Grab the 'file-mapping' section of the core composer.json file.
     $json = json_decode(file_get_contents($this->root . '/core/composer.json'));
-    $scaffold_file_mapping = (array) $json->extra->{'composer-scaffold'}->{'file-mapping'};
+    $scaffold_file_mapping = (array) $json->extra->{'drupal-scaffold'}->{'file-mapping'};
 
     // Assert that the 'file-mapping' section has the expected entry.
     $this->assertArrayHasKey("$expectedDestination/$destRelPath", $scaffold_file_mapping);
diff --git a/core/tests/scripts/test_composer_project_templates.sh b/core/tests/scripts/test_composer_project_templates.sh
index 0d32ec90c502..620f6ad29dd3 100755
--- a/core/tests/scripts/test_composer_project_templates.sh
+++ b/core/tests/scripts/test_composer_project_templates.sh
@@ -34,11 +34,13 @@
 SOURCE_DIR=$(realpath $(dirname $0))/../../..
 
 info "Installing recommended project composer template"
+composer --working-dir="${SOURCE_DIR}/composer/Template/RecommendedProject" config repositories.scaffold path '../../Plugin/Scaffold'
 composer --working-dir="${SOURCE_DIR}/composer/Template/RecommendedProject" install --no-suggest --no-progress --no-interaction
 info "Recommended project composer template installed successfully."
 assertScaffold "${SOURCE_DIR}/composer/Template/RecommendedProject/web"
 
 info "Installing legacy project composer template"
+composer --working-dir="${SOURCE_DIR}/composer/Template/LegacyProject" config repositories.scaffold path '../../Plugin/Scaffold'
 composer --working-dir="${SOURCE_DIR}/composer/Template/LegacyProject" install --no-suggest --no-progress --no-interaction
 info "Legacy project composer template installed successfully."
 assertScaffold "${SOURCE_DIR}/composer/Template/LegacyProject"
-- 
GitLab