From 5f7e7ae6278a3a96a0bdbcd8c082a79a9b786f55 Mon Sep 17 00:00:00 2001 From: Sebastian Mendel Date: Thu, 20 Aug 2026 14:01:22 +0200 Subject: [PATCH] chore: declare the direct dependencies each package uses Every split package uses libraries in its production code without requiring them. The classes resolve inside the monorepo because the root pulls everything in together, but every packages/* directory is published on its own, and there the metadata is wrong: phpdocumentor/filesystem ships a FlySystemAdapter whose Flysystem and Flyfinder classes nothing requires. Only additions that change no resolution a consumer has today: every library added here is already installed transitively, and the constraints follow what this repository declares elsewhere. guides-theme-rst gets symfony/polyfill-mbstring for the same reason, since RstExtension calls mb_str_pad() while the package allows PHP 8.1. The remainder needs decisions rather than declarations and stays in #1355. Refs #1355 Signed-off-by: Sebastian Mendel Assisted-by: claude-code:claude-fable-5 Agent-Session: https://claude.ai/code/session_0114KJz3vqq2WWfx4FUdmcss Agent-Host: 0493f0 --- composer.lock | 53 ++++++++++++++----- packages/dev-server/composer.json | 5 ++ packages/filesystem/composer.json | 2 + packages/guides-cli/composer.json | 10 +++- packages/guides-code/composer.json | 3 +- packages/guides-graphs/composer.json | 4 +- packages/guides-markdown/composer.json | 1 + .../guides-restructured-text/composer.json | 2 + packages/guides-theme-rst/composer.json | 4 +- packages/guides/composer.json | 4 ++ 10 files changed, 71 insertions(+), 17 deletions(-) diff --git a/composer.lock b/composer.lock index 3df2b4c32..a34933c47 100644 --- a/composer.lock +++ b/composer.lock @@ -1564,19 +1564,24 @@ "dist": { "type": "path", "url": "./packages/dev-server", - "reference": "e6ca50208343f466039ed057fcdec6a8a96f01db" + "reference": "affbe8b8117a95ce89bd369bd5bcc0b85c4ac68a" }, "require": { "cboden/ratchet": "0.4.x@dev", "ext-inotify": "*", "ext-pcntl": "*", + "guzzlehttp/psr7": "^2.0", "league/mime-type-detection": "^1.16", "php": "^8.1", "phpdocumentor/filesystem": "^1.0", + "psr/event-dispatcher": "^1.0", "psr/log": "^1.0 || ^2.0 || ^3.0", + "ratchet/rfc6455": "^0.3", + "react/event-loop": "^1.5", "react/http": "^v1.11", "react/socket": "^v1.16", "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/event-dispatcher-contracts": "^3.0", "symfony/routing": "^5.4 || ^6.3 || ^7.0 || ^8.0" }, "type": "project", @@ -1617,10 +1622,12 @@ "dist": { "type": "path", "url": "./packages/filesystem", - "reference": "149b1bc6d99ef4bd4ca682120dc91023839b3235" + "reference": "3beaa81311baccbe227d2cf21b3220e82b220465" }, "require": { + "league/flysystem": "^1.1.0 || ^3.29.1", "php": "^8.1", + "phpdocumentor/flyfinder": "^1.1 || ^2.0", "webmozart/assert": "^1.3" }, "type": "library", @@ -1715,7 +1722,7 @@ "dist": { "type": "path", "url": "./packages/guides", - "reference": "c269414036ffd1340ad67bcc9e4cad66c54b24a1" + "reference": "115912c76e9f20c2fcde6d6d81c371e9489cf16d" }, "require": { "doctrine/deprecations": "^1.1", @@ -1724,14 +1731,18 @@ "league/flysystem": "^1.1.0 || ^3.29.1", "league/tactician": "^1.1", "league/uri": "^7.5.1", + "league/uri-interfaces": "^7.5.0", "php": "^8.1", "phpdocumentor/filesystem": "^1.7.4", "phpdocumentor/flyfinder": "^1.1 || ^2.0", + "psr/clock": "^1.0", + "psr/container": "^1.0 || ^2.0", "psr/event-dispatcher": "^1.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/clock": "^6.4.8 || ^7.4 || ^8", "symfony/html-sanitizer": "^6.4.8 || ^7.4 || ^8", "symfony/http-client": "^6.4.9 || ^7.4 || ^8", + "symfony/http-client-contracts": "^3.0", "symfony/polyfill-php84": "^1.33.0", "symfony/string": "^6.4.9 || ^7.4 || ^8", "symfony/translation-contracts": "^3.5.1", @@ -1771,18 +1782,26 @@ "dist": { "type": "path", "url": "./packages/guides-cli", - "reference": "b36a2d466011e38c0a9648afec67a1a1601eba99" + "reference": "95b6595657cfc49c1d2dbf1babe6f99d0283c38b" }, "require": { + "doctrine/deprecations": "^1.1", + "league/tactician": "^1.1", "monolog/monolog": "^3.0", "php": "^8.1", + "phpdocumentor/filesystem": "^1.7.4", + "phpdocumentor/flyfinder": "^1.1 || ^2.0", "phpdocumentor/guides": "^1.0 || ^2.0", "phpdocumentor/guides-restructured-text": "^1.0 || ^2.0", + "psr/clock": "^1.0", + "psr/container": "^1.0 || ^2.0", + "psr/event-dispatcher": "^1.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/config": "^5.4 || ^6.3 || ^7.0 || ^8.0", "symfony/console": "^5.4 || ^6.3 || ^7.0 || ^8.0", "symfony/dependency-injection": "^5.4 || ^6.3 || ^7.0 || ^8.0", - "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0 || ^8.0" + "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "webmozart/assert": "^1.11" }, "suggest": { "phpdocumentor/dev-server": "Allows you to run a development server with live reloading to preview your documentation" @@ -1828,12 +1847,13 @@ "dist": { "type": "path", "url": "./packages/guides-code", - "reference": "46851d8bad35ffa7e7d442aaddeac5d763c14e21" + "reference": "f430f394aa902da8e68b82ebe19cb78e70b0ad56" }, "require": { "php": "^8.1", "psr/log": "^1.0 || ^2.0 || ^3.0", - "scrivo/highlight.php": "^9.18.1.10" + "scrivo/highlight.php": "^9.18.1.10", + "twig/twig": "~2.15 || ^3.0" }, "type": "library", "extra": { @@ -1868,7 +1888,7 @@ "dist": { "type": "path", "url": "./packages/guides-graphs", - "reference": "4c4c92b15973b0172548de8df09979509f04f603" + "reference": "568ed306832d8aa61aea85c4b2b5191f83963eb5" }, "require": { "jawira/plantuml-encoding": "^1.0", @@ -1876,8 +1896,10 @@ "phpdocumentor/guides": "^1.0 || ^2.0", "phpdocumentor/guides-restructured-text": "^1.0 || ^2.0", "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/http-client-contracts": "^3.0", "symfony/process": "^5.4 || ^6.3 || ^7.0 || ^8.0", - "twig/twig": "~2.0 || ^3.0" + "twig/twig": "~2.0 || ^3.0", + "webmozart/assert": "^1.11" }, "suggest": { "jawira/plantuml": "To render graphs locally using plant uml" @@ -1915,13 +1937,14 @@ "dist": { "type": "path", "url": "./packages/guides-markdown", - "reference": "5e4223c12ba81c5a943c45fb189a777ff97a25a5" + "reference": "a132da5b3f29aff720cf9a44b0ffce47ac9633ef" }, "require": { "league/commonmark": "^2.4", "php": "^8.1", "phpdocumentor/guides": "^1.0 || ^2.0", "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/string": "^6.4.9 || ^7.4 || ^8", "symfony/yaml": "^6.4 || ^7.0 || ^8.0" }, "type": "library", @@ -1957,14 +1980,16 @@ "dist": { "type": "path", "url": "./packages/guides-restructured-text", - "reference": "049588f02b220c817fb668368dc27cedf893e6dd" + "reference": "3240cb6853b36a0c2d074c14b22b70f515d0afdd" }, "require": { "doctrine/lexer": "^3.0", "league/csv": "^9.27.0", "php": "^8.1", + "phpdocumentor/flyfinder": "^1.1 || ^2.0", "phpdocumentor/guides": "^1.0 || ^2.0", "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/string": "^6.4.9 || ^7.4 || ^8", "webmozart/assert": "^1.11" }, "type": "library", @@ -2035,12 +2060,14 @@ "dist": { "type": "path", "url": "./packages/guides-theme-rst", - "reference": "ded777eb8d32c94915e730f3bb1f2b6a02cbbbc0" + "reference": "a3c7c3fdab193fad554412cefd8b942759da08e8" }, "require": { "ext-iconv": "*", "php": "^8.1", - "phpdocumentor/guides": "^1.0 || ^2.0" + "phpdocumentor/guides": "^1.0 || ^2.0", + "symfony/polyfill-mbstring": "^1.28", + "twig/twig": "~2.15 || ^3.0" }, "type": "library", "extra": { diff --git a/packages/dev-server/composer.json b/packages/dev-server/composer.json index 4d8a6260e..3652db768 100644 --- a/packages/dev-server/composer.json +++ b/packages/dev-server/composer.json @@ -28,9 +28,14 @@ "php": "^8.1", "ext-inotify": "*", "ext-pcntl": "*", + "guzzlehttp/psr7": "^2.0", + "psr/event-dispatcher": "^1.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "phpdocumentor/filesystem": "^1.0", + "ratchet/rfc6455": "^0.3", + "react/event-loop": "^1.5", "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/event-dispatcher-contracts": "^3.0", "symfony/routing": "^5.4 || ^6.3 || ^7.0 || ^8.0", "cboden/ratchet": "0.4.x@dev", "react/http": "^v1.11", diff --git a/packages/filesystem/composer.json b/packages/filesystem/composer.json index a41c63aba..9f7bfc538 100644 --- a/packages/filesystem/composer.json +++ b/packages/filesystem/composer.json @@ -25,6 +25,8 @@ "minimum-stability": "stable", "require": { "php": "^8.1", + "league/flysystem": "^1.1.0 || ^3.29.1", + "phpdocumentor/flyfinder": "^1.1 || ^2.0", "webmozart/assert": "^1.3" }, "extra": { diff --git a/packages/guides-cli/composer.json b/packages/guides-cli/composer.json index ac5da75f7..574a3aef1 100644 --- a/packages/guides-cli/composer.json +++ b/packages/guides-cli/composer.json @@ -26,14 +26,22 @@ ], "require": { "php": "^8.1", + "doctrine/deprecations": "^1.1", + "league/tactician": "^1.1", "monolog/monolog": "^3.0", + "phpdocumentor/filesystem": "^1.7.4", + "phpdocumentor/flyfinder": "^1.1 || ^2.0", "phpdocumentor/guides": "^1.0 || ^2.0", "phpdocumentor/guides-restructured-text": "^1.0 || ^2.0", + "psr/clock": "^1.0", + "psr/container": "^1.0 || ^2.0", + "psr/event-dispatcher": "^1.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/config": "^5.4 || ^6.3 || ^7.0 || ^8.0", "symfony/console": "^5.4 || ^6.3 || ^7.0 || ^8.0", "symfony/dependency-injection": "^5.4 || ^6.3 || ^7.0 || ^8.0", - "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0 || ^8.0" + "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "webmozart/assert": "^1.11" }, "suggest": { "phpdocumentor/dev-server": "Allows you to run a development server with live reloading to preview your documentation" diff --git a/packages/guides-code/composer.json b/packages/guides-code/composer.json index fa3b47e1f..de7e00f39 100644 --- a/packages/guides-code/composer.json +++ b/packages/guides-code/composer.json @@ -22,7 +22,8 @@ "require": { "php": "^8.1", "psr/log": "^1.0 || ^2.0 || ^3.0", - "scrivo/highlight.php": "^9.18.1.10" + "scrivo/highlight.php": "^9.18.1.10", + "twig/twig": "~2.15 || ^3.0" }, "extra": { "branch-alias": { diff --git a/packages/guides-graphs/composer.json b/packages/guides-graphs/composer.json index c69fbeaf5..373a85262 100644 --- a/packages/guides-graphs/composer.json +++ b/packages/guides-graphs/composer.json @@ -26,8 +26,10 @@ "phpdocumentor/guides-restructured-text": "^1.0 || ^2.0", "jawira/plantuml-encoding": "^1.0", "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/http-client-contracts": "^3.0", "symfony/process": "^5.4 || ^6.3 || ^7.0 || ^8.0", - "twig/twig": "~2.0 || ^3.0" + "twig/twig": "~2.0 || ^3.0", + "webmozart/assert": "^1.11" }, "suggest": { "jawira/plantuml": "To render graphs locally using plant uml" diff --git a/packages/guides-markdown/composer.json b/packages/guides-markdown/composer.json index 776aacc83..d3c82f463 100644 --- a/packages/guides-markdown/composer.json +++ b/packages/guides-markdown/composer.json @@ -25,6 +25,7 @@ "league/commonmark": "^2.4", "phpdocumentor/guides": "^1.0 || ^2.0", "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/string": "^6.4.9 || ^7.4 || ^8", "symfony/yaml": "^6.4 || ^7.0 || ^8.0" }, "extra": { diff --git a/packages/guides-restructured-text/composer.json b/packages/guides-restructured-text/composer.json index b159923fb..988c858a1 100644 --- a/packages/guides-restructured-text/composer.json +++ b/packages/guides-restructured-text/composer.json @@ -23,8 +23,10 @@ "require": { "php": "^8.1", "doctrine/lexer": "^3.0", + "phpdocumentor/flyfinder": "^1.1 || ^2.0", "phpdocumentor/guides": "^1.0 || ^2.0", "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/string": "^6.4.9 || ^7.4 || ^8", "webmozart/assert": "^1.11", "league/csv": "^9.27.0" }, diff --git a/packages/guides-theme-rst/composer.json b/packages/guides-theme-rst/composer.json index d6da79438..ef2853e18 100644 --- a/packages/guides-theme-rst/composer.json +++ b/packages/guides-theme-rst/composer.json @@ -23,7 +23,9 @@ "require": { "php": "^8.1", "ext-iconv": "*", - "phpdocumentor/guides": "^1.0 || ^2.0" + "phpdocumentor/guides": "^1.0 || ^2.0", + "symfony/polyfill-mbstring": "^1.28", + "twig/twig": "~2.15 || ^3.0" }, "extra": { "branch-alias": { diff --git a/packages/guides/composer.json b/packages/guides/composer.json index 7ad63658b..ce9d9b637 100644 --- a/packages/guides/composer.json +++ b/packages/guides/composer.json @@ -28,13 +28,17 @@ "league/flysystem": "^1.1.0 || ^3.29.1", "league/tactician": "^1.1", "league/uri": "^7.5.1", + "league/uri-interfaces": "^7.5.0", "phpdocumentor/flyfinder": "^1.1 || ^2.0", "phpdocumentor/filesystem": "^1.7.4", + "psr/clock": "^1.0", + "psr/container": "^1.0 || ^2.0", "psr/event-dispatcher": "^1.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/clock": "^6.4.8 || ^7.4 || ^8", "symfony/html-sanitizer": "^6.4.8 || ^7.4 || ^8", "symfony/http-client": "^6.4.9 || ^7.4 || ^8", + "symfony/http-client-contracts": "^3.0", "symfony/polyfill-php84": "^1.33.0", "symfony/string": "^6.4.9 || ^7.4 || ^8", "symfony/translation-contracts": "^3.5.1",