[meta] firefox-android: Migrate android-components to the new android monorepo
Categories
(Release Engineering :: General, task)
Tracking
(Not tracked)
People
(Reporter: jlorenzo, Assigned: jlorenzo)
References
Details
(Keywords: meta)
The first major step to accomplish bug 1782733 is to migrate android-components[1] to the new android monorepo[2]. I'm filing this meta-bug to track what we did for this specific step. I will create similar meta-bugs for focus-android and fenix.
[1] https://github.com/mozilla-mobile/android-components/
[2] https://github.com/mozilla-mobile/firefox-android
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 1•2 years ago
•
|
||
3 days ago, we migrated the android-components repo to firefox-android! Things went pretty well! First of all, let's close this bug.
Then, here's a summary of what we originally planned, what changed on the day of the migration, and what we forgot to do. I'm writing this down so that we forget fewer things when we migrate focus-android to the monorepo.
What we originally planned
As far as I can tell, all step below will have to be repeated 🔁 when we migrate focus.
- 🔁 Deactivate GV bumps so that we can immediately build and ship new nightlies/beta/releases. Done in bug 1798026.
- 🔁 Archive the old repo. This makes the repo read-only for everything (code, PRs, issues, etc).
- 🔁 Sync the
ac-prep
branch one last time. Check the git history looks good. I originally planned to check whether CI still behaves correctly but I skipped that because of the next step. - 🔁 Merge
ac-prep
tomain
. Check CI still behaves correctly. - 🔁 Bump geckoview. Make sure mergify handles that automatically.
- 🔁 Trigger an android-components nightly build.
- 🔁 Make sure the right teams have the same accesses as they used to.
- 🔁 Make glean monitor the new monorepo.
- 🔁 Communicate the
main
branch is ready to be used. Developers can open PRs againstmain
. - 🔁 Migrate
release_v107
(current beta) thenrelease_v106
(current release) branches - 🔁 Trigger a-c releases. Sync up with the release management team.
- 🔁 Communicate the release branches are ready to be used.
- 🔁 Synchronize l10n strings from the monorepo to android-l10n. Synchronize the other way around. Luckily we have strings to be synchronized both way.
What we figured out on the migration day
These are the step we realized were missing during the migration. Steps with the repeat 🔁 emoji have to be done again when we migrate focus.
A. Add branch protection rules
B. Add issue/PR labels
C. Change the pattern of the release branch names. This was done in relbot#91 and in these 2 commits (1ae6644 and 1b9bb8d - I actually put the wrong bug number in there).
D. 🔁 Figure out a way to make the release branch share as many commits as possible with the main
one. This is something the current script doesn't do because we realized we must migrate these branches just a business day before the actual migration. Details are in [bug 1798878]
E. Fix the errors caused by point D. being manual.
F. Fix shipit now being able to find the right hook. That's because ci-admin
doesn't monitor release branches. Thus, we had to make .taskcluster.yml
identical between main
and release branches.
G. 🔁 Not push git tags. Originally the sync-ac.sh
script converted tags from the old repo. After thinking more about it. I don't think it's a good idea after all. Here's the rationale:
- we will keep the old android-compoenents repo around because all PRs and open issues will remain there
- we actually shipped these old versions (tags) from that repo, so if we tag the new one, folks may be confused because they won't see any Taskcluster task nor Github Action jobs
- we only migrated the
main,
release_v106and
release_v107` branches and most tags were actually done on release branches, so most of these tags will turn out to be invalid.
What we forgot after we called the migration as done
Steps with the repeat 🔁 emoji have to be done again when we migrate focus.
i. We didn't test the component selector in PRs which led this follow-up fix, the next day.
ii. 🔁 A nightly was shipped off of the old repo. This led to this other fix, the next day. We should deactivate that at the same time as the GV bump deactivation.
iii. 🔁 Communicate about the new Taskcluster hook location. In this instance we migrated the nightly hook but Fenix has some other hooks to move too.
iv. 🔁 People weren't able to trigger the new hook anymore. Fixed in bug 1798687. Next time, we should do it before the migration is done.
v. A local script used by developers needed to be adjusted for the new directory layout. Fix
Comment hidden (collapsed) |
Updated•1 month ago
|
Description
•