Unbreak CI due to bad upstream release in PHPStan or `shipmonk/dead-code-detector`
Nightly CI reported a need for updates: https://git.drupalcode.org/project/canvas/-/jobs/10655367:
```
PHPStan dependencies are outdated. Diff:
--- composer.json.orig 2026-07-01 03:04:59.668852190 +0000
+++ composer.json 2026-07-01 03:05:02.678857558 +0000
@@ -31,9 +31,9 @@
"league/openapi-psr7-validator": "^0.22.0",
"mglaman/phpstan-drupal": "2.0.15",
"phpat/phpat": "0.12.4",
- "phpstan/phpstan": "2.2.2",
+ "phpstan/phpstan": "2.2.3",
"phpstan/phpstan-strict-rules": "2.0.11",
- "shipmonk/dead-code-detector": "1.2.0"
+ "shipmonk/dead-code-detector": "1.3.0"
},
```
:warning: Noticed in https://git.drupalcode.org/project/canvas/-/pipelines/871694 that this FAILS MRs. Breakage reported by @ravi.maniyar.123 for !1183 too. Result:
```
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires phpstan/phpstan 2.2.2 (exact version match: 2.2.2 or 2.2.2.0), found phpstan/phpstan[2.2.2] but these were not loaded, likely because it conflicts with another require.
Problem 2
- drupal/core-dev is locked to version 11.2.12 and an update of this package was not requested.
- drupal/core-dev 11.2.12 requires phpstan/phpstan ^1.12.27 || ^2.1.17 -> found phpstan/phpstan[1.12.27, ..., 1.12.x-dev, 2.1.17, ..., 2.2.x-dev] but these were not loaded, likely because it conflicts with another require.
Problem 3
- Root composer.json requires jangregor/phpstan-prophecy 2.3.0 -> satisfiable by jangregor/phpstan-prophecy[2.3.0].
- jangregor/phpstan-prophecy 2.3.0 requires phpstan/phpstan ^2.1.5 -> found phpstan/phpstan[2.1.5, ..., 2.2.x-dev] but these were not loaded, likely because it conflicts with another require.
Problem 4
- Root composer.json requires mglaman/phpstan-drupal 2.0.15 -> satisfiable by mglaman/phpstan-drupal[2.0.15].
- mglaman/phpstan-drupal 2.0.15 requires phpstan/phpstan ^2.1 -> found phpstan/phpstan[2.1.0, ..., 2.2.x-dev] but these were not loaded, likely because it conflicts with another require.
Problem 5
- Root composer.json requires phpat/phpat 0.12.4 -> satisfiable by phpat/phpat[0.12.4].
- phpat/phpat 0.12.4 requires phpstan/phpstan ^2.1 -> found phpstan/phpstan[2.1.0, ..., 2.2.x-dev] but these were not loaded, likely because it conflicts with another require.
Problem 6
- Root composer.json requires phpstan/phpstan-strict-rules 2.0.11 -> satisfiable by phpstan/phpstan-strict-rules[2.0.11].
- phpstan/phpstan-strict-rules 2.0.11 requires phpstan/phpstan ^2.1.39 -> found phpstan/phpstan[2.1.39, ..., 2.2.x-dev] but these were not loaded, likely because it conflicts with another require.
Problem 7
- Root composer.json requires shipmonk/dead-code-detector 1.2.0 -> satisfiable by shipmonk/dead-code-detector[1.2.0].
- shipmonk/dead-code-detector 1.2.0 requires phpstan/phpstan ^2.1.41 -> found phpstan/phpstan[2.1.41, ..., 2.2.x-dev] but these were not loaded, likely because it conflicts with another require.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
```
issue