Pushing Upgrades to a Child Project
Last updated
Last updated
When a project has one or more Child Projects it will appear on the Project page and the user can click to get an overview of all the Child Projects based on the current project.
From this page, you will have an overview of all the Child Projects this Baseline project has. This is also where you go when you want to push upgrades from your Baseline Project to the Child Projects.
To do a minor or major upgrade of a Baseline project and its Child projects, the first task is to run the upgrade on the Baseline project itself.
Follow the upgrade guides for Minor and/or Major upgrade notes to upgrade your Baseline project.
Once the upgrade has been verified on the Baseline project, follow the guides outlined here to push the upgrade to the child projects.
We recommend setting up a Development environment on your Child projects before deploying the updates/upgrades.
That way you'll have an environment to test on and verify that everything has been deployed correctly.
Once you are happy with the Development environment, you can go ahead and deploy it to the Live environment as well.
If you've done any version-specific steps, when upgrading the baseline project, these also need to be done on the child projects before pushing the upgrade.
Go to the child projects you are upgrading.
Go to the Advanced Setting tab.
Update the .NET version to the corresponding one for the major version upgrading to.
Go to the Baseline Project.
Click on "Manage updates here".
Select the Child Projects you want to push your upgrades to - you can select as many or as few as you like.
Click Update all child projects or Update selected.
Click Confirm once the selection looks correct.
If the upgrade has been completed successfully, the Child Projects will be displayed under the Successful Updates/upgrades section.
Go to the Manage child projects page on the Baseline.
On this page, the Child projects will have an available upgrade.
Select the projects you want to upgrade.
Click the "Upgrade selected children" button.
First, any pending changes made on the Baseline will be deployed to the child site.
Once the changes have been deployed, the child site will be upgraded to the same version as the Baseline site.
All products (CMS, Deploy, and Forms) will be upgraded.
The upgrade itself will happen once you click the upgrade button. This will start by triggering the update, where all the files are updated on the children from the baseline.
Once the files are in place, we also run the upgrade process, making sure that the children are fully upgraded.
When using the feature, the Baseline Child projects must be set up following our best practices for handling config files. This means that any changes to the Child project should be applied via a config transform file.
The reason for this is that the Child Projects config files will be merged by choosing the parent's config files first. That is to ensure that changes to config files, that have been made in the minor upgrade, will also be applied to the child projects.
If the upgrade of a Child project fails, or the Child project is left in a bad state, it is most likely because the Child project was unable to be merged properly.
When updating Child projects from a Baseline project, a configuration from the Child project will take precedence over the Baseline project configuration. This means that when the update from the baseline to the child runs, the configuration file sometimes won’t be changed.
To fix this, it is important to follow the flow shown in Handling configuration files. It prevents the child will update configuration files and will ensure the best flow between the baseline and the child.
If the flow isn't used, then the repository will be in a state where the code has been updated, but the configuration files haven’t been updated. The solution is to manually fix the configuration files on the child project. Do a comparison of the configuration files on the baseline and the child, and make sure that all changes have been added to the child’s configuration files.