Releases/Quarterly Release Logistics Brainstorming
From MozillaWiki
< Releases
This page is brainstorming what it would look like to change infrastructure / release processes to facilitate quarterly Firefox releases)
Overview
It might be helpful to think about this in three ways:
- How fixes will be landed
- How the repositories/branches will be structured and managed
- How builds will be created and tested out of the repositories/branches
Landing fixes
- Do we want to support manual committing or something automated?
- Automated example: nominated patches in bugzilla are checked in and run through the proper try repo and report back to the bug, approved patches are landed on the proper repo/branch, developers don't (ever?) land manually
- Chrome does something like this I believe, WebKit has bugzilla integration with their "try" server to preflight patches
- Automated example: nominated patches in bugzilla are checked in and run through the proper try repo and report back to the bug, approved patches are landed on the proper repo/branch, developers don't (ever?) land manually
- Do we want to force user interaction on commit to get additional metadata?
- Do we want automated merging / fix forwarding / repository syncing?
- More automated backouts?
- More testing up front and rejecting commits?
Branch/Repo structure
- Seems like consensus is forming to have project branches and integration/release branches
- Likely needs to support multiple concurrent release development
- That is, we don't clone FF4.2 right when FF4.1 is about to ship
- Do we need a "trunk"?
- Do we need "try"?
- Support more than HG for repos?
- Some projects might benefit from external hosting (GitHub, etc)
- How do we merge from repo to repo? Changesets? Tags? Entire repos?
- Code names rather than products with version numbers?
Build Mechanics
- Created nightly? Created only when there are new changes?
- Tests run every checkin on every repo?
- How do we manage our test / nightly / beta audience
- What channels?
- Ability to switch from channel-to-channel Beltzner 14:54, 15 December 2010 (PST)
- What are they called? Minefield? Firefox? Have the repo name?
Misc
- Crashes / ADU will become less useful for project branches. Will bug 619246 give more info before merge and perhaps lessen integration time?
- Create something like Chrome's about:labs and have a policy of landing controversial changes preffed off?
- from a releng/build mechanics perspective this will come into play if those features can only be enabled with build-time flags or somesuch; otherwise seems more about architectural changes required in how we develop new features Beltzner 14:53, 15 December 2010 (PST)
- A/B testing for features via updates (or some other mechanism)?