Guidelines for Considering Branch Date in Project Planning
- Avoid changes to persisted data (e.g. data serialization, database schemas, etc) just before branch due to the risk of reverts. If you modify data that will be synced, this change should be forward compatible for up to four milestones (as stable and canary are at times four milestones apart and it's reasonable to assume that somebody runs stable on chromeos and canary on mac, both syncing to the same account).
- Two weeks prior to the branch point, avoid committing big and risky changes or enabling non-trivial features.
- Pay more attention to complexity and structure of CLs around branch points, in case fixes need to be merged back after branch is created. Break up a CL into smaller pieces to facilitate potential merges.
- As the branch point gets closer, consider if there is data to gather (like adding use counters, or other histograms that we want) and prioritize that work. Metrics changes on branch don't meet the bar.
- Prioritize stability and “bake time”, as well as other ways to reduce the release risk in your timeline discussions.
- Consider API adoption timelines: code may not be exercised until developers adopt API, so feature freeze and branch could have minimal impact on stability.