Git workflow - making changes to master and making changes to previous versions of the manual
Just wanted to make sure we get this right now that there is a 19.05 branch for the manual.
Changes made to master (for the next release) may also need to be made to the branches for previous versions of the manual.
Particularly as we are still trying to get 19.05 up-to-date! (And some changes need to go into 18.11 as well.)
Scenarios:
- Change made in master, these are for new features or changes in the next major release. ==> no changes required to previous versions of the manual
- Change made in master to get up-to-date, change also needs to be included in the previous release. For example, master and in 19.05.
- Change made in master to get up-to-date, change also needs to be included in the two previous releases. For example, master and in 19.05 and 18.11.
- Change required to specific release but not to master. For example, there are feature changes in a later release but corrections or updates are required to specific release, feature removed from a later version.
What are the best workflows for scenarios 2-4? (Assuming here that we are working locally using a clone of the main koha-manual, rather than from a forked version as per https://wiki.koha-community.org/wiki/Editing_the_Koha_Manual Can add the steps that incorporate this at a later stage.)
I've outlined the main process. I would like to create step by step instructions for each scenario with the exact git commands once the main steps are okay.
I may also be over complicating this because of my lack of git knowledge!
Scenario one
No major change here - make sure master is up-to-date, create a branch for the change, commit changes, merge changes into local master, push changes to remote repository.
Scenario two
Part 1: Make the changes to master as per scenario one.
Part 2: Where changes are required to the previous version of the manual, either:
- cherry pick change and use this approach if it works without any issues, or
- on local repository fetch remote branch for version of manual, from that branch make a branch for the change, manually incorporate the changes, normal process from there (commit, merge into branch, push changes to remote)
Scenario three
Essentially the same as scenario two, just repeat part 2 for the versions of the manual where the change is required.
Scenario four
Same as second bullet point of part 2 in scenario 2