Merge 4.4 into main#8399
Merged
Merged
Conversation
…n non-resource parents (api-platform#8362)
…m#8371) * fix(mcp): make tools/list resilient to an empty registry tools/list reads from the SDK registry, which is populated once, when mcp.server is built. Under a persistent runtime (e.g. FrankenPHP worker mode) that single build can capture an empty registry and stay empty for the whole process, so tools/list returns [] while tools/call keeps working through the request-time Handler. Add a ListHandler (tagged mcp.request_handler, so it precedes the SDK's registry-backed list handlers) that loads API Platform elements into the registry on first use and reads back through the shared registry, so runtime registrations and registry decorators are preserved. Refs api-platform#8370 * Apply suggestions from code review Co-authored-by: Antoine Bluchet <soyuka@users.noreply.github.com>
# Conflicts: # CHANGELOG.md # src/State/Provider/DeserializeProvider.php
…olationFactory api-platform#8389 patched normalizeExpectedTypes() in DeserializeProvider on 4.3; 4.4 moved that logic to DenormalizationViolationFactory. Port the backed-enum backing-type reporting and result dedup so the fix survives the up-merge.
… test The 3-way merge of api-platform#8389 correctly dropped the deprecation-expectation guard (imports + #[IgnoreDeprecations] + version check) that api-platform#8287 had already removed from the sibling test, since 4.4's DenormalizationViolationFactory prefers getNotNormalizableValueErrors() over the deprecated getErrors() whenever it exists and so never triggers that deprecation on symfony/serializer >=8.1. But api-platform#8389 also introduced a brand-new test reusing the same now-unimported VersionParser/IgnoreDeprecations symbols, which the textual merge could not reconcile: it left the merged file referencing classes with no matching use statement. Remove the same stale guard from the new test for the same reason api-platform#8287 removed it from the old one.
Merge 4.3 into 4.4
Per the C.4 stabilization decision, @experimental is kept only on MCP classes. Elasticsearch, the State parameter providers (Security/IriConverter/ReadLink), PropertyAwareFilterInterface and the Laravel ParameterValidatorProvider are stable — drop the marker. Aligns 4.4 with main, which already stripped these.
Symfony 7.4 is the new LTS; bump every symfony/* floor to ^7.4 (|| ^8.0) across all components and drop 6.4 / 7.0-7.3 support. Also bump the extra.symfony.require declaration in each composer.json to ^7.4 || ^8.0 to stay consistent with the new floor (read by flex in CI). Cleanups the floor unblocks: - ParameterValidatorProvider: drop the getConstraint()/getCause() method_exists shims (guaranteed on ConstraintViolationInterface >= 7.2) - OperationRequestInitiatorTrait: drop a stale TODO
# Conflicts: # composer.json # src/Doctrine/Common/Filter/PropertyAwareFilterInterface.php # src/Doctrine/Odm/composer.json # src/Doctrine/Orm/composer.json # src/Elasticsearch/composer.json # src/GraphQl/composer.json # src/Hal/composer.json # src/HttpCache/composer.json # src/Hydra/composer.json # src/JsonApi/composer.json # src/JsonSchema/composer.json # src/Metadata/composer.json # src/OpenApi/composer.json # src/RamseyUuid/composer.json # src/Serializer/AbstractItemNormalizer.php # src/Serializer/composer.json # src/Symfony/composer.json # src/Validator/composer.json
…etadataFactory The 4.4 readable-link refinement used a getType-gated dual path; main (5.0) removed ApiProperty::getBuiltinTypes and property-info's getType, so on the bumped Symfony floor the legacy branch fatally called an undefined method during cache warmup (breaking every PHPUnit job). Keep only the native-type branch, matching main's modern type handling.
…izerTest The api-platform#8393 nullable denormalization tests guarded on method_exists(PropertyInfoExtractor::class, 'getType') with an unqualified class (resolving to the test namespace), so they were always skipped and PHPStan flagged the call as always-false. With the Symfony ^7.4 floor native types are guaranteed; drop the guards so the tests actually run.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Routine 4.4→main up-merge. Propagates the recent 4.4 work to 5.0: foo.diff removal (#8395), the Symfony ^7.4 floor bump + E3/E4 cleanups (#8397), the @experimental stabilization (#8398), and the 4.3→4.4 fixes #8389/#8393.
Manual conflict resolutions:
^7.4 || ^8.0(serializer kept at^7.4.9 || ^8.0.9;extra.symfony.require→^7.4 || ^8.0).getProperties()uncommented +@experimentalremoved).LegacyTypereferences remain.CI validates the serializer suite (the port) + the rest.