Marc's guide to back porting a fix to an existing distribution
Overall Process
- Identify the long lived branch for the module version for the distribution
- Issue a pull request to that branch for the back ported change
- The pull review may be reviewed
- Merge the pull request
- When all of the fixes have been back ported, release a patch version of the module
Identifying the long lived branch for the release
- Find the platform complete branch for the distribution e.g. for 2021 R1, this is https://github.com/folio-org/platform-complete/tree/R1-2021
- Find the module version in the
install.jsone.g. for mod-patron this is https://github.com/folio-org/platform-complete/blob/7ba9ccae51085aaa9030e18e74aa2db77ae5b43f/install.json#L323 - The branch should be named after the
majorandminorversion of the module e.g. for4.4.0it would beb4.4, for4.5.0it would beb4.5 - If the branch does not exist
- create it based upon the release tag, e.g. to create a long lived branch for version
4.4, usegit checkout -b b4.4 v4.4.0 - change the version of the module to the next patch version, e.g. if the current version is
4.4.0(non-snapshot as this came from a tag) change it to4.4.1-SNAPSHOT
- create it based upon the release tag, e.g. to create a long lived branch for version
Create a pull request for the fix
- Make sure you have the most up to date version of the long lived release branch for the targeted version
- Create a new branch for the back port based upon the long lived branch for the targeted version, e.g. to back port
MODPATRON-59to version4.4.xissue the followinggit checkout -b MODPATRON-59-back-port-to-4-4-0 b4.4 - Cherry pick the commits from the pull request for the fix (excluding the merges of master unless they are needed)
- Push the branch and issue a pull request against the long lived release branch e.g. for
MODPATRON-59-back-port-to-4-4-0the base branch shouldb4.4 - Check that the changes in this pull request are similar to those made for the original fix (unless there are good reasons where that cannot be the case)
, multiple selections available,