From dcc6dfd30a2a9ea67a801d84ee7c40baa6505bfd Mon Sep 17 00:00:00 2001
From: Adam G-H <32250-phenaproxima@users.noreply.drupalcode.org>
Date: Mon, 3 Apr 2023 21:15:34 +0000
Subject: [PATCH] Issue #3351925 by phenaproxima, tedbow: Reduce core
 requirement to ^10 to allow manual testing of Automatic Updates

---
 automatic_updates.info.yml                    |  2 +-
 .../automatic_updates_extensions.info.yml     |  2 +-
 composer.json                                 |  3 ++
 package_manager/package_manager.info.yml      |  2 +-
 .../src/PackageManagerServiceProvider.php     | 29 +++++++++++++++++++
 5 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/automatic_updates.info.yml b/automatic_updates.info.yml
index dea79b731b..8240f6e933 100644
--- a/automatic_updates.info.yml
+++ b/automatic_updates.info.yml
@@ -1,7 +1,7 @@
 name: 'Automatic Updates'
 type: module
 description: 'Automatically updates Drupal core.'
-core_version_requirement: ^9.7 || ^10.1
+core_version_requirement: ^9.7 || ^10
 dependencies:
   - drupal:package_manager
   - drupal:update
diff --git a/automatic_updates_extensions/automatic_updates_extensions.info.yml b/automatic_updates_extensions/automatic_updates_extensions.info.yml
index edf3f07d7d..6cfd52e6c4 100644
--- a/automatic_updates_extensions/automatic_updates_extensions.info.yml
+++ b/automatic_updates_extensions/automatic_updates_extensions.info.yml
@@ -1,7 +1,7 @@
 name: 'Automatic Updates Extensions'
 type: module
 description: 'Allows updates to themes and modules'
-core_version_requirement: ^9.7 || ^10.1
+core_version_requirement: ^9.7 || ^10
 lifecycle: experimental
 dependencies:
   - drupal:automatic_updates
diff --git a/composer.json b/composer.json
index 6d8213f317..51f3afb487 100644
--- a/composer.json
+++ b/composer.json
@@ -18,6 +18,9 @@
         "php-tuf/composer-stager": "2.0-alpha1",
         "composer-runtime-api": "^2.1"
     },
+    "require-dev": {
+        "colinodell/psr-testlogger": "^1.2"
+    },
     "scripts": {
         "phpcbf": "scripts/phpcbf.sh",
         "phpcs": "scripts/phpcs.sh",
diff --git a/package_manager/package_manager.info.yml b/package_manager/package_manager.info.yml
index 522d714ba2..5aad751530 100644
--- a/package_manager/package_manager.info.yml
+++ b/package_manager/package_manager.info.yml
@@ -1,6 +1,6 @@
 name: 'Package Manager'
 type: module
 description: 'API module providing functionality to stage package installs and updates with Composer.'
-core_version_requirement: ^9.7 || ^10.1
+core_version_requirement: ^9.7 || ^10
 dependencies:
   - drupal:update
diff --git a/package_manager/src/PackageManagerServiceProvider.php b/package_manager/src/PackageManagerServiceProvider.php
index 6b368ad061..27ca8d13a0 100644
--- a/package_manager/src/PackageManagerServiceProvider.php
+++ b/package_manager/src/PackageManagerServiceProvider.php
@@ -86,6 +86,35 @@ final class PackageManagerServiceProvider extends ServiceProviderBase {
       }
     }
 
+    // BEGIN: DELETE FROM CORE MERGE REQUEST
+    // Remove all of this when Drupal 10.1 is the minimum required version of
+    // Drupal core.
+    $aliases = [
+      'config.factory' => 'Drupal\Core\Config\ConfigFactoryInterface',
+      'module_handler' => 'Drupal\Core\Extension\ModuleHandlerInterface',
+      'state' => 'Drupal\Core\State\StateInterface',
+      'extension.list.module' => 'Drupal\Core\Extension\ModuleExtensionList',
+      'extension.list.theme' => 'Drupal\Core\Extension\ThemeExtensionList',
+      'stream_wrapper_manager' => 'Drupal\Core\StreamWrapper\StreamWrapperManagerInterface',
+      'database' => 'Drupal\Core\Database\Connection',
+      'queue' => 'Drupal\Core\Queue\QueueFactory',
+      'private_key' => 'Drupal\Core\PrivateKey',
+      'datetime.time' => 'Drupal\Component\Datetime\TimeInterface',
+      'event_dispatcher' => 'Symfony\Contracts\EventDispatcher\EventDispatcherInterface',
+      'plugin.manager.mail' => 'Drupal\Core\Mail\MailManagerInterface',
+      'language_manager' => 'Drupal\Core\Language\LanguageManagerInterface',
+      'file_system' => 'Drupal\Core\File\FileSystemInterface',
+      'tempstore.shared' => 'Drupal\Core\TempStore\SharedTempStoreFactory',
+      'class_resolver' => 'Drupal\Core\DependencyInjection\ClassResolverInterface',
+      'request_stack' => 'Symfony\Component\HttpFoundation\RequestStack',
+    ];
+    foreach ($aliases as $service_id => $alias) {
+      if (!$container->hasAlias($alias)) {
+        $container->setAlias($alias, $service_id);
+      }
+    }
+    // END: DELETE FROM CORE MERGE REQUEST
+
     // Decorate certain Composer Stager preconditions.
     $container->register(NoSymlinksPointToADirectory::class)
       ->setPublic(FALSE)
-- 
GitLab