Before we managed to implement monorepo for our packages, we had slightly different versions for each of our package, that's why is this section formatted differently from the other upgrading guides.
This guide contains instructions to upgrade packages before monorepo was introduced.
Before you start, don't forget to take a look at general instructions about upgrading. There you can find links to upgrade notes for other versions too.
- requires possibility of extending the CRUD of categories via
shopsys.crud_extension
of typecategory
- requires update of shopsys/plugin-interface to version
^0.3.0
and shopsys/product-feed-interface to^0.5.0
- implement method
getMainCategoryId()
in your implementations ofStandardFeedItemInterface
.
- implement method
isSellingDenied()
for all implementations ofStandardFeedItemInterface
. - you have to take care of filtering of non-sellable items in implementations of
FeedConfigInterface::processItems()
in your product feed plugin because the instances ofStandardFeedItemInterface
passed as an argument can be non-sellable now. - implement method
getAdditionalInformation()
in your implementations ofFeedConfigInterface
. - implement method
getCurrencyCode()
in your implementations ofStandardFeedItemInterface
.
- remove method
getFeedItemRepository()
from all implementations and usages ofFeedConfigInterface
.
- Rename all implementations and usages of
FeedItemInterface::getItemId()
togetId()
. - Rename all implementations and usages of
FeedItemCustomValuesProviderInterface
toHeurekaCategoryNameProviderInterface
. - If you are using custom values in your implementation, you need to implement interfaces from package shopsys/plugin-interface (see how to work with data storage interface).
- all implementations of
DataStorageInterface
now must have implemented methodgetAll()
for getting all saved data indexed by keys
- manual upgrade from this version will be very hard because of BC-breaking extraction of shopsys/framework
- at this moment the core is not easily extensible by your individual functionality
- before upgrading to the new architecture you should upgrade to Dockerized architecture of
2.0.0-beta.21.0
- the upgrade will require overriding or extending of all classes now located in
shopsys/framework that you customized in your forked repository - it would be wise to wait with the upgrade until the newly build architecture has matured
- update custom tests to be compatible with phpunit 7. For further details visit phpunit release announcements phpunit 6 and phpunit 7
- do not longer use Phing targets standards-ci and standards-ci-diff, use standards and standards-diff instead
- use
SimpleCronModuleInterface
andIteratedCronModuleInterface
from their new namespaceShopsys\Plugin\Cron
(instead ofShopsys\FrameworkBundle\Component\Cron
)
- coding standards for JS files were added, make sure
phing eslint-check
passes
(you can runphing eslint-fix
to fix some violations automatically)
- all implementations of
Shopsys\ProductFeed\FeedItemRepositoryInterface
must implement interfaceShopsys\FrameworkBundle\Model\Feed\FeedItemRepositoryInterface
instead- the interface was moved from shopsys/product-feed-interface to core
- parameter
email_for_error_reporting
was renamed toerror_reporting_email_to
inapp/config/parameter.yml.dist
, you will be prompted to fill it out again duringcomposer install
- all implementations of
StandardFeedItemInterface
must implement methodsisSellingDenied()
andgetCurrencyCode()
, see product-feed-interface
- In order to run all checks, there is new unified way - execute
php vendor/bin/ecs check /path/to/project --config=vendor/shopsys/coding-standards/easy-coding-standard.neon
- If you are overriding rules configuration in your project, it is necessary to do so in neon configuration file, see example bellow.
- See EasyCodingStandard docs for more information
// custom phpcs-fixer.php_cs
$originalConfig = include __DIR__ . '/../vendor/shopsys/coding-standards/build/phpcs-fixer.php_cs';
$originalConfig->getFinder()
->exclude('_generated');
return $originalConfig;
#custom-coding-standard.neon
includes:
- vendor/symplify/easy-coding-standard/config/psr2-checkers.neon
- vendor/shopsys/coding-standards/shopsys-coding-standard.neon
parameters:
exclude_files:
- *_generated/*