Skip to content

Latest commit

 

History

History
92 lines (65 loc) · 4.99 KB

UPGRADE-1.4.md

File metadata and controls

92 lines (65 loc) · 4.99 KB

UPGRADE FROM v1.3.X TO v1.4.0

First step is upgrading Sylius with composer

  • composer require sylius/sylius:~1.4.0

Test application database

Migrations

If you provide migrations with your plugin, take a look at following changes:

  • Change base AbstractMigration namespace to Doctrine\Migrations\AbstractMigration
  • Add : void return types to both up and down functions

Schema update

If you don't use migrations, just run (cd tests/Application && bin/console doctrine:schema:update --force) to update the test application's database schema.

Dotenv

  • composer require symfony/dotenv:^4.2 --dev
  • Follow Symfony dotenv update guide to incorporate required changes in .env files structure. Remember - they should be done on tests/Application/ level! Optionally, you can take a look at corresponding PR introducing these changes in PluginSkeleton (this PR also includes changes with Behat - see below)

Don't forget to clear the cache (tests/Application/bin/console cache:clear) to be 100% everything is loaded properly.

Test application kernel

The kernel of the test application needs to be replaced with this file. The location of the kernel is: tests/Application/Kernel.php (replace the content with the content of the file above). The container cleanup method is removed in the new version and keeping it will cause problems with for example the TagAwareAdapter which will call commit() on its pool from its destructor. If its pool is TraceableAdapter with pool ArrayAdapter, then the pool property of TraceableAdapter will be nullified before the destructor is executed and cause an error.


Behat

If you're using Behat and want to be up-to-date with our configuration

  • Update required extensions with composer require friends-of-behat/symfony-extension:^2.0 friends-of-behat/page-object-extension:^0.3 --dev
  • Remove extensions that are not needed yet with composer remove friends-of-behat/context-service-extension friends-of-behat/cross-container-extension friends-of-behat/service-container-extension --dev
  • Update your behat.yml - look at the diff here
  • Add SymfonyExtensionBundle to your tests/Application/config/bundles.php:
    return [
        //...
        FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle::class => ['test' => true, 'test_cached' => true],
    ];
  • If you use our Travis CI configuration, follow these changes introduced in .travis.yml file
  • Create tests/Application/config/services_test.yaml file with the following code and add these your own Behat services as well:
    imports:
        - { resource: "../../../vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml" }
  • Remove all __symfony__ prefixes in your Behat services
  • Remove all <tag name="fob.context_service" /> tags from your Behat services
  • Make your Behat services public by default with <defaults public="true" />
  • Change contexts_services in your suite definitions to contexts
  • Take a look at SymfonyExtension UPGRADE guide if you have any more problems

Phpstan

  • Fix the container XML path parameter in the phpstan.neon file as done here

UPGRADE FROM v1.2.X TO v1.4.0

Firstly, check out the PluginSkeleton 1.3 upgrade guide to update Sylius version step by step. To upgrade to Sylius 1.4 follow instructions from the previous section with following changes:

Doctrine migrations

  • Change namespaces of copied migrations to Sylius\Migrations

Dotenv

  • These changes are not required, but can be done as well, if you've changed application directory structure in 1.2.x to 1.3 update

Behat

  • Add \FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle() to your bundles lists in tests/Application/AppKernel.php (preferably only in test environment)
  • Import Sylius Behat services in tests/Application/config/config_test.yml and your own Behat services as well:
    imports:
        - { resource: "../../../../vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml" }
  • Specify test application's kernel path in behat.yml:
     FriendsOfBehat\SymfonyExtension:
        kernel:
          class: AppKernel
          path: tests/Application/app/AppKernel.php