When upgrading a project, there are three major steps to the process:
While we will obviously strive to keep breaking changes to a minimum, they may become necessary to remain flexible or resolve critical platform issues. This guide will help in navigating the upgrade process if such breaking changes should occur.
Upgrading the Core submodule is easy:
cd into the Core folder of the project you wish to upgradegit checkout the release branch you're upgrading togit pull to be sure you've got the latest commit for that release branch checked outcd up a directory into the root of the project, and commit the updated Core submodule commit.At this point, if there are breaking changes in any of the modules being used, it is likely the solution will not build until the remaining steps are completed.
For each plugin the project is using, you'll need to follow a process similar to the above upgrade process for Core. However, there is a possibility that the Plugin's repository won't have a branch for the version of Core you're upgrading to (for example, if nobody has used that particular plugin on the version in question). If this is the case, some manual work will be required to port that plugin to the version in question. Below are detailed steps for this process:
cd into the Plugin folder you wish to upgradereleases/1.5 and the plugin only has core/1.3/version/2.4 then you would checkout that branch, then git checkout -b core/1.5/version/2.4cd back up to the root of your project directory and commit the updated commit hash for the Plugin in question.Much like the plugins above, breaking changes in Core upgrades may have affected client customizations. If there are build errors in the client code, take the time to resolve those build errors by updating any code to match the changes from Core.
Once Core and all Plugins have been updated to the release version in question, conduct thorough testing to ensure that there were no unforeseen changes to the behavior of the code. This is especially important for live projects that are upgrading in place. Again, we will always aim to avoid breaking changes, but testing is an important part of ensuring the process went smoothly.