diff -pruN 1.25.0-1/CHANGELOG.md 1.27.0-1/CHANGELOG.md
--- 1.25.0-1/CHANGELOG.md	2025-03-05 20:41:02.000000000 +0000
+++ 1.27.0-1/CHANGELOG.md	2025-08-11 10:03:27.000000000 +0000
@@ -2,6 +2,27 @@
 
 ## NOT RELEASED
 
+## 1.27.0
+
+### Added
+
+- Support for Symfony 8
+
+### Changed
+
+- `ResultMockFactory` does not call `ReflectionProperty::setAccessible()` on PHP 8.1+
+
+## 1.26.0
+
+### Added
+
+- AWS api-change: Added `eu-isoe-west-1` region
+
+### Changed
+
+- Normalize the composer requirements
+- Sort exception alphabetically.
+
 ## 1.25.0
 
 ### Added
diff -pruN 1.25.0-1/composer.json 1.27.0-1/composer.json
--- 1.25.0-1/composer.json	2025-03-05 20:41:02.000000000 +0000
+++ 1.27.0-1/composer.json	2025-08-11 10:03:27.000000000 +0000
@@ -12,13 +12,13 @@
     ],
     "require": {
         "php": "^7.2.5 || ^8.0",
-        "ext-SimpleXML": "*",
         "ext-hash": "*",
         "ext-json": "*",
+        "ext-simplexml": "*",
         "psr/cache": "^1.0 || ^2.0 || ^3.0",
         "psr/log": "^1.0 || ^2.0 || ^3.0",
         "symfony/deprecation-contracts": "^2.1 || ^3.0",
-        "symfony/http-client": "^4.4.16 || ^5.1.7 || ^6.0 || ^7.0",
+        "symfony/http-client": "^4.4.16 || ^5.1.7 || ^6.0 || ^7.0 || ^8.0",
         "symfony/http-client-contracts": "^1.1.8 || ^2.0 || ^3.0",
         "symfony/service-contracts": "^1.0 || ^2.0 || ^3.0"
     },
@@ -38,7 +38,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.25-dev"
+            "dev-master": "1.27-dev"
         }
     }
 }
diff -pruN 1.25.0-1/debian/changelog 1.27.0-1/debian/changelog
--- 1.25.0-1/debian/changelog	2025-03-08 15:30:10.000000000 +0000
+++ 1.27.0-1/debian/changelog	2025-08-12 09:57:45.000000000 +0000
@@ -1,3 +1,31 @@
+php-async-aws-core (1.27.0-1) unstable; urgency=medium
+
+  * Upload to unstable now that trixie has been released
+
+  [ Nicolas Grekas ]
+  * Allow Symfony 8 (#1929)
+
+  [ Christian Flothmann ]
+  * do not call setAccessible() on PHP 8.1+ (#1931)
+
+  [ Jérémy Derussé ]
+  * prepare next release (#1932)
+
+ -- David Prévot <taffit@debian.org>  Tue, 12 Aug 2025 11:57:45 +0200
+
+php-async-aws-core (1.26.0-1) experimental; urgency=medium
+
+  * Upload to experimental during the freeze
+
+  [ Jérémy Derussé ]
+  * Sort exceptions alphabetically (#1875)
+  * Prepeare release
+
+  [ Christophe Coevoet ]
+  * Normalize the case of the SimpleXML requirement (#1881)
+
+ -- David Prévot <taffit@debian.org>  Mon, 12 May 2025 18:42:07 +0200
+
 php-async-aws-core (1.25.0-1) unstable; urgency=medium
 
   [ victor-upmeet ]
diff -pruN 1.25.0-1/src/Sts/StsClient.php 1.27.0-1/src/Sts/StsClient.php
--- 1.25.0-1/src/Sts/StsClient.php	2025-03-05 20:41:02.000000000 +0000
+++ 1.27.0-1/src/Sts/StsClient.php	2025-08-11 10:03:27.000000000 +0000
@@ -125,19 +125,19 @@ class StsClient extends AbstractApi
      *   '@region'?: string|null,
      * }|AssumeRoleRequest $input
      *
+     * @throws ExpiredTokenException
      * @throws MalformedPolicyDocumentException
      * @throws PackedPolicyTooLargeException
      * @throws RegionDisabledException
-     * @throws ExpiredTokenException
      */
     public function assumeRole($input): AssumeRoleResponse
     {
         $input = AssumeRoleRequest::create($input);
         $response = $this->getResponse($input->request(), new RequestContext(['operation' => 'AssumeRole', 'region' => $input->getRegion(), 'exceptionMapping' => [
+            'ExpiredTokenException' => ExpiredTokenException::class,
             'MalformedPolicyDocument' => MalformedPolicyDocumentException::class,
             'PackedPolicyTooLarge' => PackedPolicyTooLargeException::class,
             'RegionDisabledException' => RegionDisabledException::class,
-            'ExpiredTokenException' => ExpiredTokenException::class,
         ]]));
 
         return new AssumeRoleResponse($response);
@@ -273,24 +273,24 @@ class StsClient extends AbstractApi
      *   '@region'?: string|null,
      * }|AssumeRoleWithWebIdentityRequest $input
      *
-     * @throws MalformedPolicyDocumentException
-     * @throws PackedPolicyTooLargeException
-     * @throws IDPRejectedClaimException
+     * @throws ExpiredTokenException
      * @throws IDPCommunicationErrorException
+     * @throws IDPRejectedClaimException
      * @throws InvalidIdentityTokenException
-     * @throws ExpiredTokenException
+     * @throws MalformedPolicyDocumentException
+     * @throws PackedPolicyTooLargeException
      * @throws RegionDisabledException
      */
     public function assumeRoleWithWebIdentity($input): AssumeRoleWithWebIdentityResponse
     {
         $input = AssumeRoleWithWebIdentityRequest::create($input);
         $response = $this->getResponse($input->request(), new RequestContext(['operation' => 'AssumeRoleWithWebIdentity', 'region' => $input->getRegion(), 'exceptionMapping' => [
-            'MalformedPolicyDocument' => MalformedPolicyDocumentException::class,
-            'PackedPolicyTooLarge' => PackedPolicyTooLargeException::class,
-            'IDPRejectedClaim' => IDPRejectedClaimException::class,
+            'ExpiredTokenException' => ExpiredTokenException::class,
             'IDPCommunicationError' => IDPCommunicationErrorException::class,
+            'IDPRejectedClaim' => IDPRejectedClaimException::class,
             'InvalidIdentityToken' => InvalidIdentityTokenException::class,
-            'ExpiredTokenException' => ExpiredTokenException::class,
+            'MalformedPolicyDocument' => MalformedPolicyDocumentException::class,
+            'PackedPolicyTooLarge' => PackedPolicyTooLargeException::class,
             'RegionDisabledException' => RegionDisabledException::class,
         ]]));
 
@@ -405,6 +405,13 @@ class StsClient extends AbstractApi
                     'signService' => 'sts',
                     'signVersions' => ['v4'],
                 ];
+            case 'eu-isoe-west-1':
+                return [
+                    'endpoint' => 'https://sts.eu-isoe-west-1.cloud.adc-e.uk',
+                    'signRegion' => 'eu-isoe-west-1',
+                    'signService' => 'sts',
+                    'signVersions' => ['v4'],
+                ];
             case 'us-isob-east-1':
                 return [
                     'endpoint' => 'https://sts.us-isob-east-1.sc2s.sgov.gov',
diff -pruN 1.25.0-1/src/Test/ResultMockFactory.php 1.27.0-1/src/Test/ResultMockFactory.php
--- 1.25.0-1/src/Test/ResultMockFactory.php	2025-03-05 20:41:02.000000000 +0000
+++ 1.27.0-1/src/Test/ResultMockFactory.php	2025-08-11 10:03:27.000000000 +0000
@@ -84,7 +84,9 @@ class ResultMockFactory
         // Make sure the Result is initialized
         $reflectionClass = new \ReflectionClass(Result::class);
         $initializedProperty = $reflectionClass->getProperty('initialized');
-        $initializedProperty->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $initializedProperty->setAccessible(true);
+        }
 
         /** @psalm-var \ReflectionClass<T> $reflectionClass */
         $reflectionClass = new \ReflectionClass($class);
@@ -116,7 +118,9 @@ class ResultMockFactory
                     $property = $reflectionClass->getProperty($propertyName);
                 }
             }
-            $property->setAccessible(true);
+            if (\PHP_VERSION_ID < 80100) {
+                $property->setAccessible(true);
+            }
             $property->setValue($object, $propertyValue);
         }
 
@@ -151,10 +155,14 @@ class ResultMockFactory
 
         $reflectionClass = new \ReflectionClass(Waiter::class);
         $propertyResponse = $reflectionClass->getProperty('response');
-        $propertyResponse->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $propertyResponse->setAccessible(true);
+        }
 
         $propertyState = $reflectionClass->getProperty('finalState');
-        $propertyState->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $propertyState->setAccessible(true);
+        }
 
         /** @psalm-var \ReflectionClass<T> $reflectionClass */
         $reflectionClass = new \ReflectionClass($class);
@@ -217,7 +225,9 @@ class ResultMockFactory
             }
 
             if (null !== $propertyValue) {
-                $property->setAccessible(true);
+                if (\PHP_VERSION_ID < 80100) {
+                    $property->setAccessible(true);
+                }
                 $property->setValue($object, $propertyValue);
             }
         }
@@ -260,14 +270,18 @@ class ResultMockFactory
         if (class_exists($awsClientClass)) {
             $awsClientMock = (new \ReflectionClass($awsClientClass))->newInstanceWithoutConstructor();
             $property = $reflectionClass->getProperty('awsClient');
-            $property->setAccessible(true);
+            if (\PHP_VERSION_ID < 80100) {
+                $property->setAccessible(true);
+            }
             $property->setValue($object, $awsClientMock);
         }
 
         if (class_exists($inputClass)) {
             $inputMock = (new \ReflectionClass($inputClass))->newInstanceWithoutConstructor();
             $property = $reflectionClass->getProperty('input');
-            $property->setAccessible(true);
+            if (\PHP_VERSION_ID < 80100) {
+                $property->setAccessible(true);
+            }
             $property->setValue($object, $inputMock);
         }
     }
@@ -278,15 +292,21 @@ class ResultMockFactory
         $response = $reflectionClass->newInstanceWithoutConstructor();
 
         $property = $reflectionClass->getProperty('resolveResult');
-        $property->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $property->setAccessible(true);
+        }
         $property->setValue($response, true);
 
         $property = $reflectionClass->getProperty('bodyDownloaded');
-        $property->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $property->setAccessible(true);
+        }
         $property->setValue($response, true);
 
         $property = $reflectionClass->getProperty('httpResponse');
-        $property->setAccessible(true);
+        if (\PHP_VERSION_ID < 80100) {
+            $property->setAccessible(true);
+        }
         $property->setValue($response, new SimpleMockedResponse());
 
         return $response;
