If updates are being done via composer and not run via Shift these steps can be taken.
- Get a list of all packages which will be updated and save for later during testing so you know what packages have been changed if you need to debug.
- Get major versions which will not have been done on production.
- This will output all direct and transitive package updates
- Get major versions which will not have been done on production.
# output major version changes as list
composer outdated --all --format=json | jq -r '.installed[] | select((.version | sub("^[^0-9]*"; "") | split(".")[0] | tonumber) as $current_version | (.latest | sub("^[^0-9]*"; "") | split(".")[0] | tonumber > $current_version)) | "\(.version) -> \(.latest): \(.name)"'- Get versions of packages that will need to be updated filtered by the last release date. We do this because the last release would have updated the minor package versions. Filtering it by date allows us to specifically know what packages are going to change on production