@@ -175,37 +175,64 @@ The merge process enables various benefits, including:
175175- Git tags are retained in the git log.
176176- Files/code that is unique per branch can remain that way (e.g. notes files such as changelog_master.xml, version codes).
177177
178- The following steps are taken when merging main into beta:
178+ ** The following steps are taken when merging main into beta:**
179179
1801801 . Lock the main branch with the 'CLOSED TREE (main)' ruleset
1811812 . Send a message to the #tb-mobile-dev: mozilla .org matrix channel to let them know:
182-
183- - You will be performing the merge from main into beta
184- - The main branch is locked and cannot be changed during the merge
185- - You will let them know when the merge is complete and main is re-opened
186-
187- 3 . Review merge results and ensure correctness
188- 4 . Push the merge
189- 5 . Update milestones (must be done before version increment in main)
190-
191- - Open a new milestone for the new version
192- - Close the oldest milestone
193- - There should always be 3 milestones open (main, beta, release)
194-
195- 6 . Submit a pull request that increments the version in main
196- 7 . Once the version increment is merged into main, unlock the branch
197- 8 . Send a message to the #tb-mobile-dev: mozilla .org channel to notify of merge completion and that main is re-opened
198-
199- The following steps are taken when merging beta into release:
182+ - You will be performing the merge from main into beta
183+ - The main branch is locked and cannot be changed during the merge
184+ - You will let them know when the merge is complete and main is re-opened
185+ 3 . Clone thunderbird-android into three working directories:
186+ - ` merge_beta ` - where you'll perform the merge; check out the ` beta ` branch
187+ - ` orig_main ` - reference copy on the ` main ` branch
188+ - ` orig_beta ` - reference copy on the ` beta ` branch
189+ 4 . From ` merge_beta ` , run ` scripts/ci/merges/do_merge.sh beta `
190+ 5 . Handle merge conflicts if there are any:
191+ - See conflicting files with ` git status `
192+ - Search for ` <<<< ` to find conflicts
193+ - Fix conflicts
194+ - ` git add <file> ` each fixed file
195+ - When all files have been fixed and added, run ` git merge --continue `
196+ - Tip: use the ` orig_main ` and ` orig_beta ` repos to diff conflicting files, e.g. ` vimdiff "${orig_main}/${f}" "${orig_beta}/${f}" `
197+ 6 . Review merge results and ensure correctness:
198+ - Review the changes to ` app-thunderbird/build.gradle.kts ` , ` app-k9mail/build.gradle.kts ` , and release note files
199+ - Diff the merge commit with ` git diff HEAD~1 HEAD --name-only ` and sanity check the files that changed
200+ - Diff main vs the new beta with ` diff -Naur --exclude=".git" --exclude="images" "${orig_main}" "${merge_beta}" `
201+ - Note: Ensure the metadata symlink is the same on each repo to ensure proper diff
202+ 7 . Push the merge (` git push ` )
203+ 8 . Update milestones (must be done before version increment in main)
204+ - Open a new milestone for the new version
205+ - Close the oldest milestone
206+ - There should always be 3 milestones open (main, beta, release)
207+ 9 . Submit a pull request that increments the version name in main (e.g. https://github.com/thunderbird/thunderbird-android/pull/11034 )
208+ 10 . Once the version increment is merged into main, unlock the branch
209+ 11 . Send a message to the #tb-mobile-dev: mozilla .org channel to notify of merge completion and that main is re-opened for the new version (e.g. 21.0)
210+
211+ ** The following steps are taken when merging beta into release:**
200212
2012131 . Send a message to the #tb-mobile-dev: mozilla .org matrix channel to let them know:
202-
203- - You will be performing the merge from beta into release
204- - You will let them know when the merge is complete
205-
206- 2 . Review merge results and ensure correctness
207- 3 . Push the merge
208- 4 . Send a message to the #tb-mobile-dev: mozilla .org channel to notify of merge completion
214+ - You will be performing the merge from beta into release
215+ - You will let them know when the merge is complete
216+ 2 . Clone thunderbird-android into three working directories:
217+ - ` merge_release ` - where you'll perform the merge; check out the ` release ` branch
218+ - ` orig_beta ` - reference copy on the ` beta ` branch
219+ - ` orig_release ` - reference copy on the ` release ` branch
220+ 3 . From ` merge_release ` , run ` scripts/ci/merges/do_merge.sh release `
221+ 4 . Handle merge conflicts if there are any:
222+ - See conflicting files with ` git status `
223+ - Search for ` <<<< ` to find conflicts
224+ - Fix conflicts
225+ - ` git add <file> ` each fixed file
226+ - When all files have been fixed and added, run ` git merge --continue `
227+ - Tip: use the ` orig_beta ` and ` orig_release ` repos to diff conflicting files, e.g. ` vimdiff "${orig_beta}/${f}" "${orig_release}/${f}" `
228+ 5 . Review merge results and ensure correctness:
229+ - Review the changes to ` app-thunderbird/build.gradle.kts ` , ` app-k9mail/build.gradle.kts ` , and release note files
230+ - Ensure ` app-k9mail/src/main/res/raw/changelog_master.xml ` does not include any beta notes
231+ - Diff the merge commit with ` git diff HEAD~1 HEAD --name-only ` and sanity check the files that changed
232+ - Diff beta vs the new release with ` diff -Naur --exclude=".git" --exclude="images" "${orig_beta}" "${merge_release}" `
233+ - Note: Ensure the metadata symlink is the same on each repo to ensure proper diff
234+ 6 . Push the merge (` git push ` )
235+ 7 . Send a message to the #tb-mobile-dev: mozilla .org channel to notify of merge completion
209236
210237Merges are performed with the ` do_merge.sh ` script.
211238
0 commit comments