Skip to content

Commit d78aa2d

Browse files
authored
chore(docs): Add more details to merge steps (#11035)
2 parents 71427d9 + 7c94167 commit d78aa2d

1 file changed

Lines changed: 53 additions & 26 deletions

File tree

docs/release/RELEASE.md

Lines changed: 53 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

180180
1. Lock the main branch with the 'CLOSED TREE (main)' ruleset
181181
2. 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

201213
1. 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

210237
Merges are performed with the `do_merge.sh` script.
211238

0 commit comments

Comments
 (0)