Repository navigation
Add Sylius 1.13 and 1.14 support - #3
Merged
Merged
Conversation
Bump sylius/sylius to ~1.13.0 || ~1.14.0 and PHP to ^8.1, drop 1.11 and 1.12. No production class needed a change; sylius.product_variant_resolver.default still resolves on both versions, so the 1.14-only alias is not used. - register SyliusStateMachineAbstractionBundle in the test application - drop config/sylius/1.11 and 1.12 overrides and the 1.11 shim bundle - replace Swiftmailer with Symfony Mailer in the test application - fix ecs.php for the current EasyCodingStandard API - update phpstan.neon to excludePaths and error identifiers - update CI matrix to PHP 8.1-8.3, Symfony ^5.4/^6.4, Sylius ~1.13/~1.14
symfony server:ca:install exits 1 on the runners because no Chrome/Firefox NSS database is present, even though the CA is installed in the system trust store. Drop the step and run the webserver with --no-tls, as Sylius/PluginSkeleton does. Behat base_url switched to http accordingly.
Recent Composer refuses to install packages with open security advisories. api-platform/core ^2.7.10 is pinned by Sylius 1.13 and 1.14, so there is no version to upgrade to; disable the block for the CI run only.
senghe
approved these changes
Oct 5, 2026
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.
Bumps
sylius/syliusto~1.13.0 || ~1.14.0and PHP to^8.1. Drops 1.11 and 1.12.Sylius API
No class in
src/needed a change:sylius.product_variant_resolver.defaultwas not removed in 1.13, only the tag of that name was.The service id is unchanged in 1.13 and 1.14, so the injection in
ItemFactorystays as is. The1.14-only alias
sylius.resolver.product_variant.defaultis deliberately not used, because it doesnot exist in 1.13.
session.factorydecoration andEventsBag extends FlashBagare unaffected by Symfony 6.4.ResourceControllerEventis an alias ofSylius\Resource\Symfony\EventDispatcher\GenericEvent,which extends Symfony's
GenericEvent, so the listener type hints still match.Test application
It was still on the 1.11/1.12 skeleton and could not boot on 1.13:
SyliusStateMachineAbstractionBundle, otherwise the container fails on the missingsylius_abstraction.state_machineserviceconfig/sylius/1.11and1.12and the 1.11 shim bundlepackage.json.~1.11.0.distandpackage.json.~1.12.0.distTooling
ecs.phpcrashed onECSConfig::parameters(), rewritten for the current APIphpstan.neonmoved toexcludePathsand error identifiers, still level max^5.4/^6.4, Sylius~1.13.0/~1.14.0Verification
Checked against Sylius 1.13.17 and 1.14.20 on PHP 8.1:
composer validate --strictanddoctrine:schema:validategreen on bothdebug:event-dispatcher, decorator present indebug:container session.factoryview_item_list,view_item,add_to_cart,view_cart,begin_checkout,searchandadd_address_infofrom a shop walkthrough, pluspurchase,remove_from_cart,add_payment_info,loginandsign_updispatched through the booted kernelsylius/sylius-standard1.14 and verified both the default template and acustom
templateNameKnown issues, not fixed here
CheckoutEventFactory::addShippingInfo()throws on an order without shipments, becauseCollection::first()returnsfalseand?->does not short-circuit on it. Pre-existing.app.session.started. Reproduces on 1.12 too, so not a regression.