The releases of Shopsys Framework adhere to the Backward Compatibility Promise to make the upgrades to new versions easier and help long-term maintainability.
Since there are 3 possible scenarios how you can use the Shopsys Framework, instructions are divided into these scenarios.
Follow the instructions in relevant sections, eg. shopsys/coding-standards or shopsys/http-smoke-testing.
Follow the instructions in the monorepo upgrade guide.
- upgrade only your composer dependencies and follow the instructions in a guide below
- upgrade locally first - after you fix all issues caused by the upgrade, commit your changes, test your application and then continue with a deployment onto your server
- upgrade one version at a time:
- start with a working application
- upgrade to the next version
- fix all the issues you encounter
- repeat
- check the instructions in all sections, any of them could be relevant for you
- typical upgrade sequence should be:
- run
docker-compose downto turn off your containers - (MacOS, Windows only) run
docker-sync cleanso your volumes will be stopped and removed - follow upgrade notes in the Infrastructure section (related with
docker-compose.yml,Dockerfile, docker containers,nginx.conf,php.ini, etc.) - (MacOS, Windows only) run
docker-sync startto create volumes - run
docker-compose build --no-cache --pullto build your images without cache and with latest version - run
docker-compose up -d --force-recreate --remove-orphansto start the application again - update the
shopsys/*dependencies incomposer.jsonto version you are upgrading to- eg.
"shopsys/framework": "v7.0.0"
- eg.
- follow upgrade notes in the Composer dependencies section (related with
composer.json) - run
composer update shopsys/* --with-dependencies - update the
@shopsys/frameworkpackage in yourpackage.json(in "dependencies" section) to the version you are upgrading to- eg.
"@shopsys/framework": "9.0.4",
- eg.
- run
npm installto update the NPM dependencies - follow all upgrade notes you have not done yet
- run
php phing clean - run
php phing db-migrationsto run the database migrations - test your app locally
- commit your changes
- run
composer updateto update the rest of your dependencies, test the app again and commitcomposer.lock
- run
- if any of the database migrations does not suit you, there is an option to skip it, see our Database Migrations docs
- even we care a lot about these instructions, it is possible we miss something. In case something doesn't work after the upgrade, you'll find more information in the CHANGELOG