| # 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. |
| |