Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • The git diff listing will indicate whether each file has been added, modified, deleted, or renamed. Most changes are straightforward modifications, but pay attention to any additions, removals, or renames – these may indicate that Kuali has refactored some code, which could impact our custom code even if the specific files we changed haven't been touched. 
  • The master pom.xml file under kc-custom is different from the others, in that it largely is a copy of the base pom.xml (located at kc/pom.xml). However, we make some changes to the project name and update a few references to use our custom projects rather than the base ones. All of the other dependencies and such will need to be updated, however, so the best way to update this file is the following:
    • Use a diff tool to compare the "old base" pom.xml with the "old custom" pom.xml. This should highlight the handful of customizations we've made.
    • Copy the "new base" pom.xml into the "new" kc-custom project, then manually update the file to include the Tufts changes.
  • There are XML files known as the Data Dictionary files that usually reside in the coeus-impl project under src\main\resources\org\kuali\kra\datadictionary. In the coeus-impl-custom project, however, most of the customized versions of these files are located at src\main\resources\edu\tufts\kuali\kc\datadictionary. The XML files in this location are treated as overrides by the build, and will take precedence over the original files in the other location. But any Kuali changes made to the files under org\kuali\kra should be merged into the same files under edu\tufts\kuali\kc.
  • There are also a handful of custom java classes under coeus-impl-custom\src\main\java\edu\tufts. These obviously won't have Kuali changes to merge in, but it's worth taking a look at their parent classes/interfaces (and other Kuali implementations of those) to see if any changes might be necessary.
  • Occasionally, Kuali will do a bulk update to modify the copyright information in the header of each file, which will result in the diff returning every single file in the project. If this is the case, you can add a regex to the git diff command, using something like this to ignore all comments:
    • git diff -w -G'(^[^\*# /])|(^#\w)|(^\s+[^\*#/])' coeus-1808.0021 coeus-1901.0005 --name-status > kc_1808_1901_changes.txt

Build, Run, and Test

Once all of the merging is complete, you can build the entire kc-custom project using the build-kc.sh script. Then you can fix any compile errors that prevent the build from completing, then deploy the final .war file to tomcat and fix any startup errors, then test out the application and fix any runtime errors. The specifics of that will depend entirely on the changes that were made as part of the update, but if you made it this far down the page, I have faith in you (smile)