...
coeus-impl-custom and coeus-webapp-custom
The rice and s2sgen projects only had a few files, but the coeus-impl and coeus-webapp projects (both within the larger 'kc' project) have many, many more. Merging all of these changes is going to take some time no matter how we do it, but we can make our job easier by drilling down on the specific files that have been updated by Kuali since the last update and cross-referencing them with the files that exist in the kc-custom project.
Go to "New base" kc project, and run the following command to generate a list of files changed since the "old" version. The first argument should be the tag of the previous version, and the second arg should be the new tag for the current version. You can change the name of the text file as well.
Code Block |
---|
git diff coeus-1808.0021 coeus-1901.0005 --name-status > kc_1808_1901_changes.txt |
This will generate a listing of each file that has been changed in the base code since our last update. You can use this file essentially as a "To-do list" of files that need to be reviewed and merged.
Since we only maintain custom versions of the coeus-impl and coeus-webapp projects, you can delete all lines related to the other projects (coeus-db, coeus-help, coeus-it, coeus-tool). We also don't customize the test classes (src/test under each project) so those can be removed as well.
The remaining lines are the files that need to be merged. If you wanted, you could also do a listing of all of the files in the coeus-impl-custom and coeus-webapp-custom projects and do some text processing to generate a list of the files that appear in both places, but I typically just reference the diff as I walk through the custom projects, ignoring any lines for files that don't exist.
Now you just need to repeat the compare-merge process as above until all of the changes have been reconciled.
Some additional notes and pointers:
- 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.
- Data dictionary files