From 288424a36582ac59e22894aa9eff7195fe3c44ff Mon Sep 17 00:00:00 2001
From: tadean <46953-tadean@users.noreply.drupalcode.org>
Date: Wed, 3 May 2023 11:39:28 -0700
Subject: [PATCH 01/26] Issue #3357495 by joegraduate, tadean:
 isActiveStorageContext() fails in 9.5.x

---
 src/Plugin/ConfigNormalizerBase.php       | 42 ++++++++++++--
 tests/src/Kernel/ConfigNormalizerTest.php | 67 +++++++++++++++++++++++
 2 files changed, 103 insertions(+), 6 deletions(-)
 create mode 100644 tests/src/Kernel/ConfigNormalizerTest.php

diff --git a/src/Plugin/ConfigNormalizerBase.php b/src/Plugin/ConfigNormalizerBase.php
index 1d7eb28..7644fd6 100644
--- a/src/Plugin/ConfigNormalizerBase.php
+++ b/src/Plugin/ConfigNormalizerBase.php
@@ -6,6 +6,7 @@ use Drupal\config_normalizer\Config\NormalizedReadOnlyStorageInterface;
 use Drupal\Component\Plugin\PluginBase;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Drupal\Core\DependencyInjection\ContainerNotInitializedException;
 
 /**
  * Base class for Config normalizer plugins.
@@ -71,12 +72,41 @@ abstract class ConfigNormalizerBase extends PluginBase implements ConfigNormaliz
    *   TRUE if the context normalization mode is default. Otherwise, FALSE.
    */
   protected function isActiveStorageContext(array $context) {
-    if (
-      !empty($context['reference_storage_service']) &&
-      !empty($context['reference_storage_service']->_serviceId) &&
-      ($context['reference_storage_service']->_serviceId === 'config.storage')
-    ) {
-      return TRUE;
+    // Reverse lookup the storage service to determine if it's active storage.
+    if (!empty($context['reference_storage_service'])) {
+      $service = $context['reference_storage_service'];
+      $serviceId = NULL;
+      $kernel = \Drupal::service('kernel');
+
+      // ReverseContainer available in 9.5.1+ is preferred for reverse lookup.
+      if (\Drupal::hasService('Drupal\Component\DependencyInjection\ReverseContainer')) {
+        // ReverseContainer specifically not injected because of support scope.
+        // @phpstan-ignore-next-line
+        $serviceId = \Drupal::service('Drupal\Component\DependencyInjection\ReverseContainer')->getId($service);
+      }
+      // getServiceIdMapping() first available in 9.5.0, deprecated.
+      // This should be removed when 9.5.0 compatibility is no longer required.
+      elseif (method_exists($kernel, 'getServiceIdMapping')) {
+        $mapping = $kernel->getServiceIdMapping();
+        try {
+          $container = \Drupal::getContainer();
+          // Deprecated function included only for 9.5.0 compatibility.
+          // @phpstan-ignore-next-line
+          $serviceId = $mapping[$container->generateServiceIdHash($service)] ?? NULL;
+        }
+        catch (ContainerNotInitializedException $e) {
+        }
+
+      }
+      // Fallback to dynamic property before 9.5.
+      // This should be removed when < 9.5 compatibility is no longer required.
+      elseif (!empty($service->_serviceId)) {
+        $serviceId = $service->_serviceId;
+      }
+      // TRUE if the service is the active storage service.
+      if ($serviceId === 'config.storage') {
+        return TRUE;
+      }
     }
 
     return FALSE;
diff --git a/tests/src/Kernel/ConfigNormalizerTest.php b/tests/src/Kernel/ConfigNormalizerTest.php
new file mode 100644
index 0000000..d248841
--- /dev/null
+++ b/tests/src/Kernel/ConfigNormalizerTest.php
@@ -0,0 +1,67 @@
+<?php
+
+namespace Drupal\Tests\config_normalizer\Kernel;
+
+use Drupal\config_normalizer\Config\NormalizedReadOnlyStorageInterface;
+use Drupal\KernelTests\KernelTestBase;
+
+/**
+ * Tests normalizing configuration.
+ *
+ * @group config_normalizer
+ */
+class ConfigNormalizerTest extends KernelTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  protected static $modules = [
+    'system',
+    'config_normalizer',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp(): void {
+    parent::setUp();
+
+    $this->installConfig(['system']);
+  }
+
+  /**
+   * Tests that basic config normalization is working.
+   */
+  public function testNormalization() {
+
+    $data = [
+      'langcode' => 'en',
+      'uuid' => '',
+      'name' => 'My site',
+      'mail' => 'noreply@example.com',
+      'slogan' => 'My incredible slogan',
+      'page' => [
+        '403' => '',
+        '404' => '',
+        'front' => '/user/login',
+      ],
+      'admin_compact_mode' => FALSE,
+      'weight_select_max' => 100,
+      'default_langcode' => 'en',
+    ];
+
+    $context = [
+      'normalization_mode' => NormalizedReadOnlyStorageInterface::NORMALIZATION_MODE_COMPARE,
+      'reference_storage_service' => $this->container->get('config.storage'),
+    ];
+
+    $this->container->get('plugin.manager.config_normalizer')
+      ->createInstance('active')
+      ->normalize('system.site', $data, $context);
+
+    $this->assertArrayHasKey('_core', $data, 'Config normalization failed.');
+  }
+
+}
-- 
GitLab


From e02131341b1068d54226043329a9404ada7b69c2 Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Wed, 3 May 2023 12:39:47 -0700
Subject: [PATCH 02/26] Issue #3357774 by joegraduate, paraderojether: Coding
 standards

---
 src/Config/NormalizedReadOnlyStorageInterface.php      | 10 ++++------
 src/Config/NormalizedStorageComparerTrait.php          |  2 +-
 src/ConfigItemNormalizer.php                           |  6 +++++-
 src/ConfigItemNormalizerInterface.php                  |  3 ++-
 src/Plugin/ConfigNormalizer/ConfigNormalizerActive.php |  6 +++++-
 .../ConfigNormalizer/ConfigNormalizerFilterFormat.php  |  1 -
 6 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/src/Config/NormalizedReadOnlyStorageInterface.php b/src/Config/NormalizedReadOnlyStorageInterface.php
index b38045b..f8dab29 100644
--- a/src/Config/NormalizedReadOnlyStorageInterface.php
+++ b/src/Config/NormalizedReadOnlyStorageInterface.php
@@ -2,9 +2,6 @@
 
 namespace Drupal\config_normalizer\Config;
 
-use Drupal\config_filter\Config\ReadOnlyStorage;
-use Drupal\config_normalizer\ConfigItemNormalizer;
-use Drupal\config_normalizer\Plugin\ConfigNormalizerManager;
 use Drupal\Core\Config\StorageInterface;
 
 /**
@@ -41,7 +38,7 @@ interface NormalizedReadOnlyStorageInterface extends StorageInterface {
   /**
    * The default context for normalization.
    *
-   * Context is an array with the following key-valu pairs:
+   * Context is an array with the following key-value pairs:
    * - normalization_mode: The mode used for normalization.
    * - reference_storage_service: a storage that the configuration is normalized
    *   against. When this is the site's active configuration storage,
@@ -56,7 +53,7 @@ interface NormalizedReadOnlyStorageInterface extends StorageInterface {
   /**
    * Gets the context to be used for normalization.
    *
-   * @param array
+   * @return array
    *   An array of key-value pairs to pass additional context when needed.
    */
   public function getContext();
@@ -67,7 +64,8 @@ interface NormalizedReadOnlyStorageInterface extends StorageInterface {
    * If not given, values are defaulted to those in ::DEFAULT_CONTEXT.
    *
    * @param array $context
-   *   (optional) An array of key-value pairs to pass additional context when needed.
+   *   (optional) An array of key-value pairs to pass additional context when
+   *   needed.
    */
   public function setContext(array $context = []);
 
diff --git a/src/Config/NormalizedStorageComparerTrait.php b/src/Config/NormalizedStorageComparerTrait.php
index 6e9ceb7..8151236 100644
--- a/src/Config/NormalizedStorageComparerTrait.php
+++ b/src/Config/NormalizedStorageComparerTrait.php
@@ -41,7 +41,7 @@ trait NormalizedStorageComparerTrait {
    * @param string $mode
    *   (optional) The normalization mode.
    *
-   * @return \Drupal\Core\Config\StorageComparer;
+   * @return \Drupal\Core\Config\StorageComparer
    *   A storage comparer.
    */
   protected function createStorageComparer(StorageInterface $source_storage, StorageInterface $target_storage, $mode = NormalizedReadOnlyStorageInterface::DEFAULT_NORMALIZATION_MODE) {
diff --git a/src/ConfigItemNormalizer.php b/src/ConfigItemNormalizer.php
index 8c3fa89..095c39e 100644
--- a/src/ConfigItemNormalizer.php
+++ b/src/ConfigItemNormalizer.php
@@ -38,7 +38,10 @@ class ConfigItemNormalizer implements ConfigItemNormalizerInterface {
    */
   public function normalize($name, array $data, array $context = []) {
     $normalizers = $this->normalizerManager->getDefinitions();
-    uasort($normalizers, ['Drupal\Component\Utility\SortArray', 'sortByWeightElement']);
+    uasort(
+      $normalizers,
+      ['Drupal\Component\Utility\SortArray', 'sortByWeightElement']
+    );
 
     foreach (array_keys($normalizers) as $id) {
       $this->applyNormalizer($id, $name, $data, $context);
@@ -63,6 +66,7 @@ class ConfigItemNormalizer implements ConfigItemNormalizerInterface {
    *   configuration.
    *
    * @return \Drupal\config_normalizer\Plugin\ConfigNormalizerInterface
+   *   The ConfigNormalizer instance.
    */
   protected function getNormalizerInstance($id) {
     if (!isset($this->normalizers[$id])) {
diff --git a/src/ConfigItemNormalizerInterface.php b/src/ConfigItemNormalizerInterface.php
index 45f3095..be58c25 100644
--- a/src/ConfigItemNormalizerInterface.php
+++ b/src/ConfigItemNormalizerInterface.php
@@ -18,7 +18,8 @@ interface ConfigItemNormalizerInterface {
    * @param array $data
    *   Configuration array to normalize.
    * @param array $context
-   *   (optional) An array of key-value pairs to pass additional context when needed.
+   *   (optional) An array of key-value pairs to pass additional context when
+   *   needed.
    *
    * @return array
    *   Normalized configuration array.
diff --git a/src/Plugin/ConfigNormalizer/ConfigNormalizerActive.php b/src/Plugin/ConfigNormalizer/ConfigNormalizerActive.php
index 09d9ef8..01ba0a4 100644
--- a/src/Plugin/ConfigNormalizer/ConfigNormalizerActive.php
+++ b/src/Plugin/ConfigNormalizer/ConfigNormalizerActive.php
@@ -29,7 +29,11 @@ class ConfigNormalizerActive extends ConfigNormalizerBase implements ContainerFa
 
       // Merge in uuid and _core while retaining the key order.
       $merged = array_replace($active_data, $data);
-      $data = array_intersect_key($merged, array_flip(array_merge(array_keys($data), ['uuid', '_core'])));
+      $data = array_intersect_key(
+        $merged,
+        array_flip(array_merge(array_keys($data), ['uuid', '_core']))
+      );
     }
   }
+
 }
diff --git a/src/Plugin/ConfigNormalizer/ConfigNormalizerFilterFormat.php b/src/Plugin/ConfigNormalizer/ConfigNormalizerFilterFormat.php
index 3201a0c..9fd5665 100644
--- a/src/Plugin/ConfigNormalizer/ConfigNormalizerFilterFormat.php
+++ b/src/Plugin/ConfigNormalizer/ConfigNormalizerFilterFormat.php
@@ -3,7 +3,6 @@
 namespace Drupal\config_normalizer\Plugin\ConfigNormalizer;
 
 use Drupal\config_normalizer\Plugin\ConfigNormalizerBase;
-use Drupal\Component\Plugin\DependentPluginInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 
 /**
-- 
GitLab


From 2f507ec5a9ff23393023317c843eceab3ff8cce6 Mon Sep 17 00:00:00 2001
From: Project Update Bot <git@users.noreply.drupalcode.org>
Date: Wed, 3 May 2023 12:43:19 -0700
Subject: [PATCH 03/26] Issue #3286666 by Project Update Bot, lelkneralfaro:
 Automated Drupal 10 compatibility fixes

---
 config_normalizer.info.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/config_normalizer.info.yml b/config_normalizer.info.yml
index 4c5dc70..059485b 100644
--- a/config_normalizer.info.yml
+++ b/config_normalizer.info.yml
@@ -1,8 +1,7 @@
 name: 'Configuration Normalizer'
 type: module
 description: 'Normalizes configuration for comparison.'
-core: 8.x
-core_version_requirement: ^8 || ^9
+core_version_requirement: ^8 || ^9 || ^10
 package: Configuration
 dependencies:
   - config_filter:config_filter
-- 
GitLab


From d89474aff2d2399c52658a66d5726fd18181e472 Mon Sep 17 00:00:00 2001
From: Dinesh Kumar Bollu <60581-dineshkumarbollu@users.noreply.drupalcode.org>
Date: Fri, 23 Jun 2023 13:41:04 +0000
Subject: [PATCH 04/26] Issue #3358102 by dineshkumarbollu, clarkssquared,
 Mahima_Mathur23, mlncn: Add README.md file

---
 README.md | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 README.md

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f70cf34
--- /dev/null
+++ b/README.md
@@ -0,0 +1,41 @@
+# Configuration Normalizer
+
+Configuration Normalizer processes configuration to prepare it for comparison.
+
+## Developer usage
+
+This module can be used to wrap any configuration storage, creating a read-only
+version of the storage for which any data read will be returned in a normalized
+form.
+
+The most common usage would be to minimize non-meaningful differences when
+comparing configuration data from different sources. Configuration Normalizer
+provides a trait to facilitate this.
+
+For full information about project visit:
+[Config Normalizer](https://www.drupal.org/project/config_normalizer).
+
+## Requirements
+
+This module requires no modules outside of Drupal core.
+
+## Installation
+
+Install as you would normally install a contributed Drupal module. For further
+information, see
+[Installing Drupal Modules](https://www.drupal.org/docs/extending-drupal/installing-drupal-modules).
+
+## Acknowledgements
+
+This module draws significantly on work by Jennifer Hodgdon in Configuration
+Update Manager and Fabian Bircher in Config Filter.
+
+
+## Maintainers
+
+- Joe Parsons- [joegraduate](https://www.drupal.org/u/joegraduate)
+- tadean - [tadean](https://www.drupal.org/u/tadean)
+- Nedjo Rogers - [nedjo](https://www.drupal.org/u/nedjo)
+- Artem Dmitriiev - [a.dmitriiev](https://www.drupal.org/u/admitriiev)
+- Fabian Bircher - [bircher](https://www.drupal.org/u/bircher)
+- Merlin Axel Rutz - [geek-merlin](https://www.drupal.org/u/geek-merlin)
\ No newline at end of file
-- 
GitLab


From 61d3f8eb77fca1a3382e5238909860abc3d694f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?benjamin=20melan=C3=A7on?= <ben@agaric.coop>
Date: Fri, 23 Jun 2023 09:43:46 -0400
Subject: [PATCH 05/26] Document dependency on Config Filter contrib module

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index f70cf34..4747c62 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ For full information about project visit:
 
 ## Requirements
 
-This module requires no modules outside of Drupal core.
+- [Config Filter](https://www.drupal.org/project/config_filter)
 
 ## Installation
 
-- 
GitLab


From cfdcb5aa2d2bdb64c28daed97f882dd2fb777e86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?benjamin=20melan=C3=A7on?= <ben@agaric.coop>
Date: Fri, 23 Jun 2023 09:44:19 -0400
Subject: [PATCH 06/26] Add link to issues, plus minor text/format edits

To the README.
---
 README.md | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 4747c62..1096466 100644
--- a/README.md
+++ b/README.md
@@ -12,8 +12,9 @@ The most common usage would be to minimize non-meaningful differences when
 comparing configuration data from different sources. Configuration Normalizer
 provides a trait to facilitate this.
 
-For full information about project visit:
-[Config Normalizer](https://www.drupal.org/project/config_normalizer).
+For full information visit the project page, [Config Normalizer](https://www.drupal.org/project/config_normalizer).
+
+And [see or file issues](https://www.drupal.org/project/issues/config_normalizer).
 
 ## Requirements
 
@@ -38,4 +39,4 @@ Update Manager and Fabian Bircher in Config Filter.
 - Nedjo Rogers - [nedjo](https://www.drupal.org/u/nedjo)
 - Artem Dmitriiev - [a.dmitriiev](https://www.drupal.org/u/admitriiev)
 - Fabian Bircher - [bircher](https://www.drupal.org/u/bircher)
-- Merlin Axel Rutz - [geek-merlin](https://www.drupal.org/u/geek-merlin)
\ No newline at end of file
+- Merlin Axel Rutz - [geek-merlin](https://www.drupal.org/u/geek-merlin)
-- 
GitLab


From 20a999a8317cb9bc7261391ba4d7ea28913da5f7 Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Thu, 16 May 2024 23:48:06 +0000
Subject: [PATCH 07/26] Issue #3447742: Replace
 Drupal\config_filter\Config\ReadOnlyStorage with core version

---
 config_normalizer.info.yml               | 6 ++----
 src/Config/NormalizedReadOnlyStorage.php | 2 +-
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/config_normalizer.info.yml b/config_normalizer.info.yml
index 059485b..7680a75 100644
--- a/config_normalizer.info.yml
+++ b/config_normalizer.info.yml
@@ -1,7 +1,5 @@
 name: 'Configuration Normalizer'
 type: module
 description: 'Normalizes configuration for comparison.'
-core_version_requirement: ^8 || ^9 || ^10
-package: Configuration
-dependencies:
-  - config_filter:config_filter
+core_version_requirement: ^8.8 || ^9 || ^10
+package: Configuration
\ No newline at end of file
diff --git a/src/Config/NormalizedReadOnlyStorage.php b/src/Config/NormalizedReadOnlyStorage.php
index a39a3b0..c6b2bba 100644
--- a/src/Config/NormalizedReadOnlyStorage.php
+++ b/src/Config/NormalizedReadOnlyStorage.php
@@ -2,9 +2,9 @@
 
 namespace Drupal\config_normalizer\Config;
 
-use Drupal\config_filter\Config\ReadOnlyStorage;
 use Drupal\config_normalizer\ConfigItemNormalizer;
 use Drupal\config_normalizer\Plugin\ConfigNormalizerManager;
+use Drupal\Core\Config\ReadOnlyStorage;
 use Drupal\Core\Config\StorageInterface;
 
 /**
-- 
GitLab


From fe37b7ee44f6976a05aeb204397f7f0345f4ff9e Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Tue, 21 May 2024 19:53:44 +0000
Subject: [PATCH 08/26] Issue #3436630 by joegraduate: Add .gitlab-ci.yml,
 address PHPCS/PHPStan warnings.

---
 .gitlab-ci.yml                         | 106 +++++++++++++++++++++++++
 src/Plugin/ConfigNormalizerBase.php    |   8 +-
 src/Plugin/ConfigNormalizerManager.php |   4 +-
 3 files changed, 114 insertions(+), 4 deletions(-)
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..ddfcfcc
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,106 @@
+################
+# DrupalCI GitLabCI template
+#
+# Gitlab-ci.yml to replicate DrupalCI testing for Contrib
+#
+# With thanks to:
+#   * The GitLab Acceleration Initiative participants
+#   * DrupalSpoons
+################
+
+################
+# Guidelines
+#
+# This template is designed to give any Contrib maintainer everything they need to test, without requiring modification. It is also designed to keep up to date with Core Development automatically through the use of include files that can be centrally maintained.
+#
+# However, you can modify this template if you have additional needs for your project.
+################
+
+################
+# Includes
+#
+# Additional configuration can be provided through includes.
+# One advantage of include files is that if they are updated upstream, the changes affect all pipelines using that include.
+#
+# Includes can be overridden by re-declaring anything provided in an include, here in gitlab-ci.yml
+# https://docs.gitlab.com/ee/ci/yaml/includes.html#override-included-configuration-values
+################
+
+include:
+  ################
+  # DrupalCI includes:
+  # As long as you include this, any future includes added by the Drupal Association will be accessible to your pipelines automatically.
+  # View these include files at https://git.drupalcode.org/project/gitlab_templates/
+  ################
+  - project: $_GITLAB_TEMPLATES_REPO
+    # "ref" value can be:
+    # - Recommended (default) - `ref: $_GITLAB_TEMPLATES_REF` - The Drupal Association will update this value to the recommended tag for contrib.
+    # - Latest - `ref: main` - Get the latest additions and bug fixes as they are merged into the templates.
+    # - Minor or Major latests - `ref: 1.x-latest` or `ref: 1.0.x-latest` - Get the latest additions within a minor (mostly bugfixes) or major (bugs and new features).
+    # - Fixed tag - `ref: 1.0.1` - Set the value to a known tag. This will not get any updates.
+    # If you change the default value of ref, you should set the _CURL_TEMPLATES_REF variable in the variables section to be the same as set here.
+    ref: $_GITLAB_TEMPLATES_REF
+    file:
+      - "/includes/include.drupalci.main.yml"
+      # For Drupal 7, remove the above line and uncomment the below.
+      # - "/includes/include.drupalci.main-d7.yml"
+      - "/includes/include.drupalci.variables.yml"
+      - "/includes/include.drupalci.workflows.yml"
+#
+################
+# Pipeline configuration variables
+#
+# These are the variables provided to the Run Pipeline form that a user may want to override.
+#
+# Docs at https://git.drupalcode.org/project/gitlab_templates/-/blob/main/includes/include.drupalci.variables.yml
+################
+# variables:
+#   SKIP_ESLINT: '1'
+#   OPT_IN_TEST_NEXT_MAJOR: '1'
+#   _CURL_TEMPLATES_REF: 'main'
+
+###################################################################################
+#
+#                                        *
+#                                       /(
+#                                      ((((,
+#                                    /(((((((
+#                                   ((((((((((*
+#                                ,(((((((((((((((
+#                              ,(((((((((((((((((((
+#                            ((((((((((((((((((((((((*
+#                         *(((((((((((((((((((((((((((((
+#                       ((((((((((((((((((((((((((((((((((*
+#                    *((((((((((((((((((  .((((((((((((((((((
+#                  ((((((((((((((((((.       /(((((((((((((((((*
+#                /(((((((((((((((((            .(((((((((((((((((,
+#             ,((((((((((((((((((                 ((((((((((((((((((
+#           .((((((((((((((((((((                   .(((((((((((((((((
+#          (((((((((((((((((((((((                     ((((((((((((((((/
+#        (((((((((((((((((((((((((((/                    ,(((((((((((((((*
+#      .((((((((((((((/  /(((((((((((((.                   ,(((((((((((((((
+#     *((((((((((((((      ,(((((((((((((/                   *((((((((((((((.
+#    ((((((((((((((,          /(((((((((((((.                  ((((((((((((((,
+#   (((((((((((((/              ,(((((((((((((*                 ,(((((((((((((,
+#  *(((((((((((((                .(((((((((((((((                ,(((((((((((((
+#  ((((((((((((/                /((((((((((((((((((.              ,((((((((((((/
+# (((((((((((((              *(((((((((((((((((((((((*             *((((((((((((
+# (((((((((((((            ,(((((((((((((..(((((((((((((           *((((((((((((
+# ((((((((((((,          /((((((((((((*      /((((((((((((/         ((((((((((((
+# (((((((((((((        /((((((((((((/          (((((((((((((*       ((((((((((((
+# (((((((((((((/     /((((((((((((               ,((((((((((((,    *((((((((((((
+#  ((((((((((((((  *(((((((((((/                   *((((((((((((.  ((((((((((((/
+#  *((((((((((((((((((((((((((,                      /(((((((((((((((((((((((((
+#   (((((((((((((((((((((((((                         ((((((((((((((((((((((((,
+#   .(((((((((((((((((((((((/                         ,(((((((((((((((((((((((
+#     ((((((((((((((((((((((/                         ,(((((((((((((((((((((/
+#      *(((((((((((((((((((((                         (((((((((((((((((((((,
+#       ,(((((((((((((((((((((,                      ((((((((((((((((((((/
+#         ,(((((((((((((((((((((*                  /((((((((((((((((((((
+#            ((((((((((((((((((((((,           ,/((((((((((((((((((((,
+#              ,(((((((((((((((((((((((((((((((((((((((((((((((((((
+#                 .(((((((((((((((((((((((((((((((((((((((((((((
+#                     .((((((((((((((((((((((((((((((((((((,.
+#                          .,(((((((((((((((((((((((((.
+#
+###################################################################################
diff --git a/src/Plugin/ConfigNormalizerBase.php b/src/Plugin/ConfigNormalizerBase.php
index 7644fd6..2ea74f7 100644
--- a/src/Plugin/ConfigNormalizerBase.php
+++ b/src/Plugin/ConfigNormalizerBase.php
@@ -2,11 +2,11 @@
 
 namespace Drupal\config_normalizer\Plugin;
 
-use Drupal\config_normalizer\Config\NormalizedReadOnlyStorageInterface;
 use Drupal\Component\Plugin\PluginBase;
+use Drupal\config_normalizer\Config\NormalizedReadOnlyStorageInterface;
+use Drupal\Core\DependencyInjection\ContainerNotInitializedException;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
-use Drupal\Core\DependencyInjection\ContainerNotInitializedException;
 
 /**
  * Base class for Config normalizer plugins.
@@ -76,9 +76,11 @@ abstract class ConfigNormalizerBase extends PluginBase implements ConfigNormaliz
     if (!empty($context['reference_storage_service'])) {
       $service = $context['reference_storage_service'];
       $serviceId = NULL;
+      // @phpstan-ignore-next-line
       $kernel = \Drupal::service('kernel');
 
       // ReverseContainer available in 9.5.1+ is preferred for reverse lookup.
+      // @phpstan-ignore-next-line
       if (\Drupal::hasService('Drupal\Component\DependencyInjection\ReverseContainer')) {
         // ReverseContainer specifically not injected because of support scope.
         // @phpstan-ignore-next-line
@@ -87,8 +89,10 @@ abstract class ConfigNormalizerBase extends PluginBase implements ConfigNormaliz
       // getServiceIdMapping() first available in 9.5.0, deprecated.
       // This should be removed when 9.5.0 compatibility is no longer required.
       elseif (method_exists($kernel, 'getServiceIdMapping')) {
+        // @phpstan-ignore-next-line
         $mapping = $kernel->getServiceIdMapping();
         try {
+          // @phpstan-ignore-next-line
           $container = \Drupal::getContainer();
           // Deprecated function included only for 9.5.0 compatibility.
           // @phpstan-ignore-next-line
diff --git a/src/Plugin/ConfigNormalizerManager.php b/src/Plugin/ConfigNormalizerManager.php
index 725784e..11a6f94 100644
--- a/src/Plugin/ConfigNormalizerManager.php
+++ b/src/Plugin/ConfigNormalizerManager.php
@@ -2,10 +2,10 @@
 
 namespace Drupal\config_normalizer\Plugin;
 
-use Drupal\Core\DependencyInjection\DependencySerializationTrait;
-use Drupal\Core\Plugin\DefaultPluginManager;
 use Drupal\Core\Cache\CacheBackendInterface;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\Core\Plugin\DefaultPluginManager;
 
 /**
  * Provides the Config normalizer plugin manager.
-- 
GitLab


From d81c6e826cee350b68c3ab2b3b3792d720a1d3dd Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Thu, 6 Jun 2024 23:02:48 +0000
Subject: [PATCH 09/26] Issue #3400776 by joegraduate, daniil_borysenko,
 danahertzberg: Make module compatible with Project Browser

---
 logo.png | Bin 0 -> 7735 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 logo.png

diff --git a/logo.png b/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..215abac2205ddd60eeb404b61eb5549909d291c3
GIT binary patch
literal 7735
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

literal 0
HcmV?d00001

-- 
GitLab


From 127806d823f5f7ff585bee25033dd3a0aa67b495 Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Thu, 27 Jun 2024 22:41:28 +0000
Subject: [PATCH 10/26] Issue #3400776 by joegraduate, danahertzberg: Higher
 contrast logo for project browser.

---
 logo.png | Bin 7735 -> 1972 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/logo.png b/logo.png
index 215abac2205ddd60eeb404b61eb5549909d291c3..5c49f1879cdfcfc68a57705ae21bb53f654b7462 100644
GIT binary patch
literal 1972
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
F{|kx{@V)>5

literal 7735
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

-- 
GitLab


From 39b4e80084c42aa01fe21caac99dd8bdf9d46b56 Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Tue, 9 Jul 2024 22:01:39 +0000
Subject: [PATCH 11/26] Issue #3460354 by joegraduate: GitLabCI: Fix existing
 CSpell issues

---
 .cspell-project-words.txt | 9 +++++++++
 1 file changed, 9 insertions(+)
 create mode 100644 .cspell-project-words.txt

diff --git a/.cspell-project-words.txt b/.cspell-project-words.txt
new file mode 100644
index 0000000..39a4b57
--- /dev/null
+++ b/.cspell-project-words.txt
@@ -0,0 +1,9 @@
+Artem
+Dmitriiev
+dmitriiev
+Hodgdon
+joegraduate
+Nedjo
+nedjo
+Rutz
+tadean
-- 
GitLab


From e4adf8790202fd79a8f90e0aa736d4be8c30295b Mon Sep 17 00:00:00 2001
From: Project Update Bot
 <66574-Project-Update-Bot@users.noreply.drupalcode.org>
Date: Tue, 9 Jul 2024 22:19:10 +0000
Subject: [PATCH 12/26] Issue #3429461 by joegraduate, Project Update Bot:
 Automated Drupal 11 compatibility fixes for config_normalizer

---
 config_normalizer.info.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config_normalizer.info.yml b/config_normalizer.info.yml
index 7680a75..3b6db57 100644
--- a/config_normalizer.info.yml
+++ b/config_normalizer.info.yml
@@ -1,5 +1,5 @@
 name: 'Configuration Normalizer'
 type: module
 description: 'Normalizes configuration for comparison.'
-core_version_requirement: ^8.8 || ^9 || ^10
+core_version_requirement: ^8.8 || ^9 || ^10 || ^11
 package: Configuration
\ No newline at end of file
-- 
GitLab


From 2c1680b4424e499c878e64701707f9bf7e7cff49 Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Tue, 9 Jul 2024 22:35:24 +0000
Subject: [PATCH 13/26] Issue #3447742 by joegraduate: Remove no-longer-needed
 config_filter reference in README

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 1096466..c664db4 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ And [see or file issues](https://www.drupal.org/project/issues/config_normalizer
 
 ## Requirements
 
-- [Config Filter](https://www.drupal.org/project/config_filter)
+This module requires no modules outside of Drupal core.
 
 ## Installation
 
-- 
GitLab


From 41e47e36bf5ff4e020eaa8435de0fee1451952d7 Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Tue, 9 Jul 2024 23:25:57 +0000
Subject: [PATCH 14/26] Issue #3400776 by joegraduate, danahertzberg: Fix logo
 size

---
 logo.png | Bin 1972 -> 2031 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/logo.png b/logo.png
index 5c49f1879cdfcfc68a57705ae21bb53f654b7462..a067f318ebdf0a073c24ea6e1a59b18c00c57d79 100644
GIT binary patch
literal 2031
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
Lt&7b~CO7pzw3RL5

literal 1972
zcmb7_c~p{#8pdhV>x@g3md2QLo4Q)J3EKwTkQs5q1-hv@<(}gnE~%j(B4xRh*>cS=
zH$+D3ie+l<Ar(61m?EH-8*Z5pnW3M8Aab2^?)`VpndhA6yzhC=dCz(OdCu?JNxZ9}
z-nV)X2*eQQ=5z`I*#iDyZLQ73M)9(3b9|HFb|wh|(Kq_TTLcps>zkp`Nlzc=Z~u8(
zqtT?L-gU=cXsGX+nU?fA-13J&blq@HKl!ANE==?RmG-+Xg=$Zj7NR|+aP}x=&3;S$
zJQcCr_wHg%HeK6jazC%}Q$X{$`F?FJFQf1Nsv3stJXUyh=7``!;panvk>YuJaIXW3
z{JXqw$;0o>hovS<7}y;i+w8}=$?JQ}z~*c<w@nrg{K>**P!F%RvbL6$Q#zHMM00CO
zA?c!CX;6x=<+5-r4uB)k(mN%@=w0BkC_pc8gggL-?@{kKK^bzT>J@j2nemy`i;P45
zx?Xh^Jd)9(A^RFlgd!g;;iO`D%&JH=Xd48;j-ay~W(WIBmB)gVHS~=gM=0B^D3gTA
zE{|Yc&&@+?sw_*?<*`U_h4lreGv@h%#=XFTo%%~~wA&&uvEpt0UZ5#`$U>!{oPrOb
zRtHu~MR}DPwY+hr<cGD88sC3dv3039uyz)ca3dg;cTt^`h6C$H&ipGTUt+%c6sGw8
zl#zN8HrDvtwSZS6pBU!0J%vshhIQ=j>AQ6R46e}T*CDz}rHQo2$EuSXouY1`yoMB4
z9P3+iGtW#0mN3uAY7=u+8GJesACFh)OF)%zGjrHXttwizUGgDp4NRPttry3V#`D=1
zEOUb9hDY@t%$u;Bg*2qZk`J=IlxI({n{Zb9g~IWesu1Px2+F>qppmNhIYHz2g{GgC
z0;GEXz0MY|;Jm7qW=WP0Q0!l~!##N9LHt$0Ar<(@6S!yh&;%FUUO{&f$Pwb$JK(Sm
zn&w6*d%cKw<x#<DW5jC<4xvCtIJ(!|_d3%mkWZKqll{OZYe0HELkqA+r&w@cA~+$q
zjTwKHZ$<(gO(xDqjUk0OEjhyc?B>e;(H`y?S7L!3qYs5g+pY9%Bmm*<lkn=BpBx0Y
zXnvha{M*TC%$vychKq`!s~VdH^oJhl3!>dz>5s!x)ol)+0K<ggBF>P`K$DAjCZeSJ
z*}KLyz-DeAi^(&6D0+}?&)%6zj01yI3?(kUntUTy`eh#h-~Vw>)A4n78kiV1f4HNt
z=QAR!JQ^B1iY*=Fy>)#Snpge^miR=mt)t?XFVAWZs4_;U3{E%ox-lM%s#wFlJDHWc
zl+O_ug-@otX6~F={i-H9c_q=&fK8>Bxljqe2+1uOM(o+{OfdyJxC40m<Up<nWqjWe
zW3ePbk6|u<?p90D9qZbFM2Bq_f?v!ym;XI*9K+6~m6IJ?5{p<2eauVjt%QWUqH@Ro
zmCB}S+R4PW;4}x}`&1^FWg|^xQ^QWG?Om)gXt~3CA(1jJe!=ybRo_m7EeJ9<bV7cz
zI&k!7-4n98Q(~-sY464!RI*Cg5ultp%S)gc{MK<Y`3>9PG6D)uk>hXYy>u15-Zu3J
z!i=A|e^JZr@NLnJ2}N{^x^|AA64!g!Scv|xVJc4rx>^*zZTP(t@BX7YfA3P<d|*_Z
z`qz?HLZz5I(FdI$rYvaM65#Jbe&nQk7wB5AZPZ>5f%l&Szpgm~?+II-swakl4QGcB
z=JToaGyb8GNn}!TG&In^ok<f^TlK%sYQ@FQT}Ld|7x$MxNi}jMtp@a+73tKhZpW4w
zv@@p{aDS()<ubfprzl(vh>qeRt!(7pWJ~T?ha1pEUGM7V7F0Q0iCN5uT9z!Y+|NNC
zOm6J;D#%72)pxIj#+%iHh06>t1N02WKboBC{fK+VvBmybnYM7>2DfXw#wMnNJLYnN
zGM5@<?8Ms*C1#3|Ij9vQZyT^%Z9z9Q!S5!`W+QQ+YI-3m;fp`Zr1<VjNeg#uvRl*c
z-OlO#xOHLkyB+Ly*C_hOfQ*1q11Pal>_?mBm|lu~v`qzMMl_r49(Cd$&)UmZ>hFzQ
zVHwFlDmh)YzHH~~680`MB&xuf+L2L0rLtURx5=^m)vd$^F&!gMS0%j~S&Y+Hjt0g+
z#Wbp){U_3mz!dBtp0XwAJ4)Iz@@*=I75|NG@}9{oegU`67M50nipX5jNQ26aG2$ze
zc$$c23BI^BRS+d{eh#|GlLn*2(o2$^$z>joFAvCN0@L<bi%JIlt7<Dlhp^l$L4Wfk
zFnB1kEW5nhgAhS))p4}StVSgf#=m0JU8(jPh%8|%u#;FiapnV*a#Y^cw?`TC`C17E
zoEvX6rHT)NBN0{`1C6PYo^fN;E%DHs`Fc3t?>JNn=XdxOo|itC;8t1txC>ye1L@De
z@qea3D=cfe;W@o;-C-cu@Pi*ura1fb-`lqTMcrx2&?2$cIQF*3#GAy0;GFSJj~zoY
F{|kx{@V)>5

-- 
GitLab


From 9804f6b1570cc90e296bf57a5df4304579530ba6 Mon Sep 17 00:00:00 2001
From: Chris Green <chrisgreen@arizona.edu>
Date: Mon, 17 Mar 2025 21:29:27 -0700
Subject: [PATCH 15/26] Issue #3513597 Add composer.json file for easier local
 development.

---
 composer.json | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 composer.json

diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..c9b4c7a
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,56 @@
+{
+    "name": "drupal/config_normalizer",
+    "description": "Normalizes configuration for comparison.",
+    "type": "drupal-module",
+    "license": "GPL-2.0-or-later",
+    "minimum-stability": "dev",
+    "authors": [
+        {
+            "name": "Nedjo Rogers (nedjo)",
+            "homepage": "https://www.drupal.org/u/nedjo",
+            "role": "Original author"
+        },
+        {
+            "name": "Fabian Bircher (bircher)",
+            "homepage": "https://www.drupal.org/u/bircher",
+            "role": "Maintainer"
+        },
+        {
+            "name": "Benjamin Melançon (mlncn)",
+            "homepage": "https://www.drupal.org/u/mlncn",
+            "role": "Maintainer"
+        },
+        {
+            "name": "Joe Parsons (joegraduate)",
+            "homepage": "https://www.drupal.org/u/joegraduate",
+            "role": "Maintainer"
+        },
+        {
+            "name": "tadean",
+            "homepage": "https://www.drupal.org/u/tadean",
+            "role": "Maintainer"
+        },
+        {
+            "name": "Artem Dmitriiev (a.dmitriiev)",
+            "homepage": "https://www.drupal.org/u/a.dmitriiev",
+            "role": "Maintainer"
+        },
+        {
+            "name": "Merlin Axel Rutz (geek-merlin)",
+            "homepage": "https://www.drupal.org/u/geek-merlin",
+            "role": "Maintainer"
+        },
+        {
+            "name": "Campus Web Services The University of Arizona (uarizona)",
+            "homepage": "https://www.drupal.org/u/uarizona",
+            "role": "Maintainer"
+        }
+    ],
+    "support": {
+        "issues": "https://www.drupal.org/project/issues/config_normalizer",
+        "source": "https://git.drupal.org/project/config_normalizer.git"
+    },
+    "require": {
+        "drupal/core": "^8 || ^9 || ^10"
+    }
+}
-- 
GitLab


From f527f7228594653330a98cb31872a8439438f689 Mon Sep 17 00:00:00 2001
From: Fabian Bircher <f.bircher@gmail.com>
Date: Sun, 29 Aug 2021 23:17:17 +0200
Subject: [PATCH 16/26] Issue #3230397 by bircher: Normalize the way core does

---
 config_normalizer.info.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config_normalizer.info.yml b/config_normalizer.info.yml
index 3b6db57..c0781ce 100644
--- a/config_normalizer.info.yml
+++ b/config_normalizer.info.yml
@@ -2,4 +2,4 @@ name: 'Configuration Normalizer'
 type: module
 description: 'Normalizes configuration for comparison.'
 core_version_requirement: ^8.8 || ^9 || ^10 || ^11
-package: Configuration
\ No newline at end of file
+package: Configuration
-- 
GitLab


From 19dfd4ce5f350d09245ce8a2890ad53a901dddbe Mon Sep 17 00:00:00 2001
From: Fabian Bircher <f.bircher@gmail.com>
Date: Mon, 30 Aug 2021 09:23:15 +0200
Subject: [PATCH 17/26] Issue #3230426 by bircher: Rename
 ConfigItemNormalizerInterface to ConfigNormalizerInterface as main API of the
 module

---
 src/ConfigItemNormalizerInterface.php | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/ConfigItemNormalizerInterface.php b/src/ConfigItemNormalizerInterface.php
index be58c25..c1f997a 100644
--- a/src/ConfigItemNormalizerInterface.php
+++ b/src/ConfigItemNormalizerInterface.php
@@ -4,8 +4,11 @@ namespace Drupal\config_normalizer;
 
 /**
  * Defines an interface for config item normalizers.
+ *
+ * @deprecated in config_normalizer:2.0.0-alpha1 and is removed from config_normalizer:2.0.0. Use ConfigNormalizerInterface instead.
+ * @see https://www.drupal.org/project/config_normalizer/issues/3230426
  */
-interface ConfigItemNormalizerInterface {
+interface ConfigItemNormalizerInterface extends ConfigNormalizerInterface {
 
   /**
    * Normalizes config for comparison.
-- 
GitLab


From cf63490fe528d4e5d5400bc53f053054b32a50a2 Mon Sep 17 00:00:00 2001
From: Dinesh Kumar Bollu <60581-dineshkumarbollu@users.noreply.drupalcode.org>
Date: Fri, 23 Jun 2023 13:41:04 +0000
Subject: [PATCH 18/26] Issue #3358102 by dineshkumarbollu, clarkssquared,
 Mahima_Mathur23, mlncn: Add README.md file

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index c664db4..ad47131 100644
--- a/README.md
+++ b/README.md
@@ -39,4 +39,4 @@ Update Manager and Fabian Bircher in Config Filter.
 - Nedjo Rogers - [nedjo](https://www.drupal.org/u/nedjo)
 - Artem Dmitriiev - [a.dmitriiev](https://www.drupal.org/u/admitriiev)
 - Fabian Bircher - [bircher](https://www.drupal.org/u/bircher)
-- Merlin Axel Rutz - [geek-merlin](https://www.drupal.org/u/geek-merlin)
+- Merlin Axel Rutz - [geek-merlin](https://www.drupal.org/u/geek-merlin)
\ No newline at end of file
-- 
GitLab


From 48e145c89fc5edd70b4ee74e4d9c4e6022b8124d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?benjamin=20melan=C3=A7on?= <ben@agaric.coop>
Date: Fri, 23 Jun 2023 09:43:46 -0400
Subject: [PATCH 19/26] Document dependency on Config Filter contrib module

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index ad47131..f78cb36 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ And [see or file issues](https://www.drupal.org/project/issues/config_normalizer
 
 ## Requirements
 
-This module requires no modules outside of Drupal core.
+- [Config Filter](https://www.drupal.org/project/config_filter)
 
 ## Installation
 
-- 
GitLab


From 03733fc6cd176fe9d081c19a600d815d49db4040 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?benjamin=20melan=C3=A7on?= <ben@agaric.coop>
Date: Fri, 23 Jun 2023 09:44:19 -0400
Subject: [PATCH 20/26] Add link to issues, plus minor text/format edits

To the README.
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index f78cb36..1096466 100644
--- a/README.md
+++ b/README.md
@@ -39,4 +39,4 @@ Update Manager and Fabian Bircher in Config Filter.
 - Nedjo Rogers - [nedjo](https://www.drupal.org/u/nedjo)
 - Artem Dmitriiev - [a.dmitriiev](https://www.drupal.org/u/admitriiev)
 - Fabian Bircher - [bircher](https://www.drupal.org/u/bircher)
-- Merlin Axel Rutz - [geek-merlin](https://www.drupal.org/u/geek-merlin)
\ No newline at end of file
+- Merlin Axel Rutz - [geek-merlin](https://www.drupal.org/u/geek-merlin)
-- 
GitLab


From c4cc974d35a9ca35226033c48ddc1d838a558fa1 Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Thu, 16 May 2024 23:48:06 +0000
Subject: [PATCH 21/26] Issue #3447742: Replace
 Drupal\config_filter\Config\ReadOnlyStorage with core version

---
 config_normalizer.info.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config_normalizer.info.yml b/config_normalizer.info.yml
index c0781ce..3b6db57 100644
--- a/config_normalizer.info.yml
+++ b/config_normalizer.info.yml
@@ -2,4 +2,4 @@ name: 'Configuration Normalizer'
 type: module
 description: 'Normalizes configuration for comparison.'
 core_version_requirement: ^8.8 || ^9 || ^10 || ^11
-package: Configuration
+package: Configuration
\ No newline at end of file
-- 
GitLab


From 08857f2eb6f24e3d7db8d973dc78002b72f4029c Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Tue, 21 May 2024 19:53:44 +0000
Subject: [PATCH 22/26] Issue #3436630 by joegraduate: Add .gitlab-ci.yml,
 address PHPCS/PHPStan warnings.

-- 
GitLab


From f8d7048f7992c343817b1af45575776868ca1fa8 Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Thu, 6 Jun 2024 23:02:48 +0000
Subject: [PATCH 23/26] Issue #3400776 by joegraduate, daniil_borysenko,
 danahertzberg: Make module compatible with Project Browser

-- 
GitLab


From a99143c93f88d8c201f77130f9cccbb4ff33a17e Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Tue, 9 Jul 2024 22:35:24 +0000
Subject: [PATCH 24/26] Issue #3447742 by joegraduate: Remove no-longer-needed
 config_filter reference in README

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 1096466..c664db4 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ And [see or file issues](https://www.drupal.org/project/issues/config_normalizer
 
 ## Requirements
 
-- [Config Filter](https://www.drupal.org/project/config_filter)
+This module requires no modules outside of Drupal core.
 
 ## Installation
 
-- 
GitLab


From 8d36743078ee7a78f42d0ac4aa20229e609fc6d7 Mon Sep 17 00:00:00 2001
From: Joe Parsons <20385-joegraduate@users.noreply.drupalcode.org>
Date: Tue, 9 Jul 2024 23:25:57 +0000
Subject: [PATCH 25/26] Issue #3400776 by joegraduate, danahertzberg: Fix logo
 size

-- 
GitLab


From e772394ac0205da025bf7039b43d01fc4a745e8f Mon Sep 17 00:00:00 2001
From: Chris Green <chrisgreen@arizona.edu>
Date: Mon, 17 Mar 2025 21:29:27 -0700
Subject: [PATCH 26/26] Issue #3513597 Add composer.json file for easier local
 development.

-- 
GitLab