We have developed an upgrade strategy intended to make it as simple as possible for you to maintain your customizations as you upgrade KFS to future versions. The keys to working within this strategy are...
- Using the provided override hooks to avoid modification of delivered files whenever possible
- Choosing the appropriate location for the files that you add in order to override or extend delivered functionality
- Tagging any delivered files that you absolutely have to modify with the appropriate phrase (#INSTITUTIONAL CUSTOMIZATION#) within a comment appropriate for that file type
The Upgrade Process
- Obtain the new distribution (Vanilla KFS)
- Point it at your prior version (Customized KFS) via a build property
- Run an upgrade target that will copy the following from Customized KFS to Vanilla KFS
- Java Source Code
- All files under work/src but not under work/src/org/kuali
- All files under work/src/org/kuali that contain #INSTITUTIONAL CUSTOMIZATION#
- Test Source Code
- All files under test/src but not under work/src/org/kuali
- All files under test/src/org/kuali that contain #INSTITUTIONAL CUSTOMIZATION#
- Web Files
- all files under work/web-root that contain #INSTITUTIONAL CUSTOMIZATION#
- Java Source Code
- Copy any content that you added to work/web-root from Customized KFS to Vanilla KFS
- Run a target to generate the upgrade script appropriate for your database platform from the upgrade XML delivered with the distribution
- Review the generated upgrade script, modify as necessary, and execute against your database
Extra Care with Modifications to Delivered Files
It is also recommended that you use version control or other comparison tools to assist with merging of modifications to delivered files. For example, when you get a new version of vanilla kfs...
- Create a branch off of your current development code base
- Delete the customized code and put the vanilla distribution in its place
- Do a merge / synchronize and apply changes in the vanilla distribution to the files that you customized after you've run through the process above
Unable to render {include} The included page could not be found.