(This article was first published on November 13, 2023, and last updated on January 22, 2024.)
Shopware 6.6 RC is out now, and we want to inform you again about the most important technical changes. Prepare for the removal of deprecated code, library updates, and breaking changes. Have your extensions ready and available for release by familiarizing yourself with the upcoming changes early on. Moreover, we would be grateful if you could provide us with any feedback you may have to ensure the smoothest possible release of Shopware 6.6. We count on you so everybody can upgrade their systems in time.
Overview
Timeline
We published Shopware 6.6 today as a release candidate (RC). The RC phase will last for at least eight weeks, meaning we expect the final release to be published at the end of March.
As usual, with the release of the RC, we will split off an RC branch on GitHub. This branch will be feature-freezed, only bugs will be fixed in it.
Note that the release candidate must not be used for production or in live projects. It is only meant for testing and updating extensions; there will be no update path from the RC to 6.6 final!
General changes
Removal of announced deprecations
All parts of the code base marked as deprecated will be removed. If you are using deprecated functionality, now is the time to update your code. Please find more details in the UPGRADE-6.6.md on GitHub.
Removal of feature flags
Specific features already released under a feature flag will be active by default introducing breaking changes, requiring code updates in your projects and/or extensions. Here, you can find the affected lines of code.
Removal of experimental state
This is just for your information, no action needed: features stable with 6.6 have been freed from the "experimental" annotation, such as AsyncThemeCompilation, QuoteMangement, and others.
Admin changes
Vue.js 3 update
All extensions altering the administration panel via the plugin system must be tested. As Vue.js 2 will no longer be supported by the end of this year, we updated the administration component to the latest version of Vue.js, ensuring our customers receive up-to-date and compliant software. You will find a tutorial on how to update to Vue.js 3 in our documentation.
Webpack 5 update
Plugins that provide their own webpack config need to be migrated to webpack 5 API.
Node 20 as minimum version
As discussed, we upgraded the minimum version requirement for Node from 18 to 20 because it is the new LTS version with active support until the end of 2024, and maintenance support until mid-2026.
Configurable auto logout
This one you will love: A lot of people requested this feature for a long time. We can finally deliver this, stay tuned!
Core changes
Symfony 7 upgrade
Symfony 7.0 is to be released this month, and we want to swiftly upgrade to it as discussed. Best resource to read about breaks is Symfony's upgrade guide.
PHP 8.2 as minimum requirement
With the upcoming upgrade to Symfony 7, PHP 8.2 will become the new minimum required version. Refer to the release information by Symfony and check compatibility with your hosting provider.
Maria DB 10.11 minimum requirement
We upgraded the minimum version requirement for Maria DB from v10.3 to v10.11, as that is the latest LTS version. Additionally, this version supports the JSON_OVERLAPS function
, that is needed by the "delete unused media" feature, and thus it will finally work in every setup. MySQL was already changed to minimum version 8.0.
Redis 7.0 minimum requirement
We upgraded the minimum version requirement for Redis from v6.2 to v7.0, as there are a lot of performance improvements, and it allows us to use the new redis function feature in the future.
Upgrading some 3rd party composer dependencies
We plan to upgrade some 3rd party composer dependencies such as lcobucci/jwt
to v5 or higher and async-aws/simple-s3
to v2 or higher.
Stock API changes
We simplify the way Shopware stores stock data and make the system more extendable for developers. It will become easier to supplement the stock information with user-defined data and to send it to third-party systems. It is also now possible to completely disable Shopware's stock management. The new Stock API was introduced in 6.5.5 behind the STOCK_HANDLING
feature flag; it now will become the default method in 6.6.
To keep the impact as low as possible, we kept the backwards compatibility for reading the stock. With this new method, it now becomes easier to write to stock handling. Please note that the feature multi-inventory is not compatible yet. If you are interested, you will find more details in the discussions, the changelog, and in our docs for extending the API.
Persistent media path storage
The path to media is now stored in the database instead of being generated on the fly. Please read more about this in discussions about this topic.
Improving the caching layer
A few refactoring and improvement changes on the caching layer will be set active by default by removing their feature flag. Read discussion #3299 and discussion #3171 for more information.
Unbundle AWS and Google Cloud adapters
We want to maintain a lean and fast core. For this reason, we will get rid of AWS and Google Cloud adapters. So far, we have delivered these adapters with a vanilla Shopware installation although it is unlikely that both services will be used at once. This is why we ask you to require the adapters for the storage you need in your project yourselves, we may make use of composer suggest for the necessary dependencies. See discussions for more information.
Use Symfony/scheduler instead of your own scheduled task implementation
As Symfony recently added a scheduler component, and we want to work as closely to the framework as possible, we will switch from our own scheduled task implementation to the new Symfony native component. This frees developer resources, as we do not have to maintain our own code. Also, no special Shopware knowledge is necessary - knowing Symfony is sufficient. Read more about it in discussions.
Multilingual ElasticSearch index
To improve the overall performance, we changed the method of indexing in ElasticSearch: from now on, we don't split index building by language any longer. Please be aware of this when providing your own properties in ElasticSearch. For more details, please read our architecture decision record.
Storefront changes
Async JavaScript plugin loading
By introducing asynchronous JS loading and allowing dynamic imports, we want to increase the storefront performance and smoothen the JS handling. Read the discussions for more details.
Improve CSS
For the same reason of increasing the performance, we will remove unnecessary CSS code by using Bootstrap's spacing utility. Please read more about it in our architecture decision record.
Further information
Additional information on how to prepare for the release candidate and some further explanation surrounding the timeline and release can be found in this video interview on YouTube:
Test the release candidate now and provide feedback
Have feedback or questions? Connect with us on the Shopware community Slack in the channel
#feedback-rc-6_6. Your input is valuable to us!