Upgrade Guzzle to 8

With webmentions-parser gone nothing pins Guzzle to 7. The app uses
guzzlehttp/psr7 directly (Uri, UriResolver, Header, Utils) without
requiring it, so require psr7 ^3.0 explicitly; all the methods we call
are unchanged in 3.x.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jonny Barnes 2026-11-07 16:25:03 +00:00
commit 37dd2f10a3
Signed by: jonny
SSH key fingerprint: SHA256:CTuSlns5U7qlD9jqHvtnVmfYV3Zwl2Z7WnJ4/dqOaL8
2 changed files with 120 additions and 85 deletions

View file

@ -14,6 +14,7 @@
"ext-pgsql": "*",
"ext-sodium": "*",
"cviebrock/eloquent-sluggable": "^13.0",
"guzzlehttp/psr7": "^3.0",
"indieauth/client": "^1.1",
"intervention/image": "^4.0",
"jonnybarnes/indieweb": "~0.2",

204
composer.lock generated
View file

@ -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": "c05d8b5c324f0f2308155a5a65c35a0d",
"content-hash": "fce4f734e2344a88fcfb374527a5e061",
"packages": [
{
"name": "aws/aws-crt-php",
@ -992,26 +992,27 @@
},
{
"name": "guzzlehttp/guzzle",
"version": "7.16.1",
"version": "8.3.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "81755d989b3007ca7f88a069857553cd08e7dc2e"
"reference": "7d9b1f430bb65ac664e120af227bf9a795ad6333"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/81755d989b3007ca7f88a069857553cd08e7dc2e",
"reference": "81755d989b3007ca7f88a069857553cd08e7dc2e",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/7d9b1f430bb65ac664e120af227bf9a795ad6333",
"reference": "7d9b1f430bb65ac664e120af227bf9a795ad6333",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/promises": "^2.6",
"guzzlehttp/psr7": "^2.13.2",
"php": "^7.2.5 || ^8.0",
"guzzlehttp/promises": "^3.1",
"guzzlehttp/psr7": "^3.2",
"php": "^7.4 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.5 || ^3.0",
"symfony/polyfill-php80": "^1.25"
"psr/http-factory": "^1.0",
"symfony/polyfill-php80": "^1.25",
"symfony/polyfill-php82": "^1.27"
},
"provide": {
"psr/http-client-implementation": "1.0"
@ -1019,10 +1020,10 @@
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
"guzzle/client-integration-tests": "3.0.3",
"guzzlehttp/test-server": "^0.7",
"guzzle/client-integration-tests": "4.0.1",
"guzzlehttp/test-server": "^1.1",
"php-http/message-factory": "^1.1",
"phpunit/phpunit": "^8.5.52 || ^9.6.34",
"phpunit/phpunit": "^9.6.34",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@ -1038,9 +1039,6 @@
}
},
"autoload": {
"files": [
"src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\": "src/"
}
@ -1100,7 +1098,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.16.1"
"source": "https://github.com/guzzle/guzzle/tree/8.3.1"
},
"funding": [
{
@ -1116,29 +1114,29 @@
"type": "tidelift"
}
],
"time": "2026-10-25T21:35:21+00:00"
"time": "2026-10-25T21:35:34+00:00"
},
{
"name": "guzzlehttp/promises",
"version": "2.6.0",
"version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "3d88c829bd5f13d13847b39067dbf09a60af2154"
"reference": "094d0ec418eb3b1411ea271a180ec95cae6ae933"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/3d88c829bd5f13d13847b39067dbf09a60af2154",
"reference": "3d88c829bd5f13d13847b39067dbf09a60af2154",
"url": "https://api.github.com/repos/guzzle/promises/zipball/094d0ec418eb3b1411ea271a180ec95cae6ae933",
"reference": "094d0ec418eb3b1411ea271a180ec95cae6ae933",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
"php": "^7.4 || ^8.0",
"symfony/deprecation-contracts": "^2.5 || ^3.0"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"phpunit/phpunit": "^8.5.52 || ^9.6.34"
"phpunit/phpunit": "^9.6.34"
},
"type": "library",
"extra": {
@ -1184,7 +1182,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/2.6.0"
"source": "https://github.com/guzzle/promises/tree/3.1.0"
},
"funding": [
{
@ -1200,39 +1198,39 @@
"type": "tidelift"
}
],
"time": "2026-10-18T12:46:59+00:00"
"time": "2026-10-18T12:48:16+00:00"
},
{
"name": "guzzlehttp/psr7",
"version": "2.13.2",
"version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "adee536f95101929f262b8c59e8a61472f347d58"
"reference": "cdc139396207a5eba10c242d241fb014cb098390"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/adee536f95101929f262b8c59e8a61472f347d58",
"reference": "adee536f95101929f262b8c59e8a61472f347d58",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/cdc139396207a5eba10c242d241fb014cb098390",
"reference": "cdc139396207a5eba10c242d241fb014cb098390",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.1 || ^2.0",
"ralouphie/getallheaders": "^3.0",
"symfony/deprecation-contracts": "^2.5 || ^3.0",
"symfony/polyfill-php80": "^1.25"
"php": "^7.4 || ^8.0",
"psr/http-factory": "^1.1",
"psr/http-message": "^2.0",
"symfony/polyfill-php80": "^1.25",
"symfony/polyfill-php82": "^1.27"
},
"provide": {
"psr/http-factory-implementation": "1.0",
"psr/http-message-implementation": "1.0"
"psr/http-factory-implementation": "1.1",
"psr/http-message-implementation": "2.0"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"http-interop/http-factory-tests": "1.1.0",
"jshttp/mime-db": "1.54.0.1",
"phpunit/phpunit": "^8.5.52 || ^9.6.34"
"php-http/psr7-integration-tests": "^1.5.1",
"phpunit/phpunit": "^9.6.34"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@ -1303,7 +1301,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/2.13.2"
"source": "https://github.com/guzzle/psr7/tree/3.2.0"
},
"funding": [
{
@ -1319,7 +1317,7 @@
"type": "tidelift"
}
],
"time": "2026-10-17T23:49:46+00:00"
"time": "2026-10-17T23:57:19+00:00"
},
{
"name": "guzzlehttp/uri-template",
@ -4553,50 +4551,6 @@
},
"time": "2026-06-29T15:41:09+00:00"
},
{
"name": "ralouphie/getallheaders",
"version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/ralouphie/getallheaders.git",
"reference": "120b605dfeb996808c31b6477290a714d356e822"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": ""
},
"require": {
"php": ">=5.6"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.1",
"phpunit/phpunit": "^5 || ^6.5"
},
"type": "library",
"autoload": {
"files": [
"src/getallheaders.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ralph Khattar",
"email": "ralph.khattar@gmail.com"
}
],
"description": "A polyfill for getallheaders.",
"support": {
"issues": "https://github.com/ralouphie/getallheaders/issues",
"source": "https://github.com/ralouphie/getallheaders/tree/develop"
},
"time": "2019-03-08T08:55:37+00:00"
},
{
"name": "ramsey/collection",
"version": "2.1.1",
@ -7083,6 +7037,86 @@
],
"time": "2026-05-26T12:45:58+00:00"
},
{
"name": "symfony/polyfill-php82",
"version": "v1.43.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php82.git",
"reference": "843bbe8b2a7934307b749751eede0f111f5d1cfc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php82/zipball/843bbe8b2a7934307b749751eede0f111f5d1cfc",
"reference": "843bbe8b2a7934307b749751eede0f111f5d1cfc",
"shasum": ""
},
"require": {
"php": ">=7.2"
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/polyfill",
"name": "symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php82\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php82/tree/v1.43.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2026-09-25T15:50:05+00:00"
},
{
"name": "symfony/polyfill-php83",
"version": "v1.43.0",