| # Merge Request Process | 
 |  | 
 | [TOC] | 
 |  | 
 | ## tl;dr | 
 |  | 
 | * After branch point, all merges will be closely reviewed (either manually or | 
 |   automatically) by TPMs and release owners. | 
 | * Requirements for approving merges are becoming more | 
 |   stringent and scrutiny of merges gets higher as we get closer to the | 
 |   stable launch date. Any necessary merges should be requested as early as | 
 |   possible. | 
 | * All merge candidates should have full automated unit test coverage, have been deployed in Canary | 
 |   for at least 24 hours, and full developer confidence that change will be | 
 |   safe. | 
 | * When requesting merge review, please provide clear explanation for why a merge | 
 |   is required, the criticality and impact of the issue, and ensure that | 
 |   bug is correctly labeled for all impacted OS's. | 
 |  | 
 | ## Introduction | 
 |  | 
 | Chrome ships across multiple channels which are built from different release | 
 | branches. In general, changes should first land on trunk, be shipped and | 
 | verified in a canary release, and then promoted to our Dev, Beta, and Stable | 
 | channels overtime. However, due to many reasons and scenarios, it’s | 
 | possible that changes may miss branch date and require a merge post branch. | 
 |  | 
 | **Merge**: any change that is cherry picked from trunk to a release branch. | 
 |  | 
 | Please read overview of [Chrome Release | 
 | Cycle](https://chromium.googlesource.com/chromium/src.git/+/master/docs/process/release_cycle.md) | 
 | to understand in detail how the Chrome release cycle works and understand key | 
 | release concepts and terminology. Please read [Defining Release | 
 | Blockers](https://chromium.googlesource.com/chromium/src.git/+/master/docs/process/release_blockers.md) | 
 | to understand how issues/bugs are categorized as release blocking. | 
 | List of schedule and release owners can be found at [Chrome | 
 | Calendar](https://chromepmo.appspot.com/calendar) (Googlers only, opening to all in the near future). | 
 |  | 
 | ## When to Request a Merge? | 
 |  | 
 | This section will discuss when and what type of bugs can be merged based on | 
 | criticality of the issue. Please note that the scrutiny of merges | 
 | gets higher as we get closer to the stable launch date. Merges post | 
 | stable-rollout have a higher bar than merges prior to Stable. | 
 |  | 
 |  | 
 |  | 
 | **Phase 1: First Two Weeks After Branch (two weeks before beta promotion)** | 
 |  | 
 | There are bugs and polish fixes that may not necessarily be considered | 
 | critical but help with the overall quality of the product. There are also | 
 | scenarios where dependent CL’s are missed by hours or days. To accommodate | 
 | these scenarios, merges will be considered for all polish bugs, regressions, | 
 | and release blocking bugs for the first two weeks after branch point. | 
 | Please note that merges will not be accepted for | 
 | implementing or enabling brand new features or functionality. Features | 
 | should already be complete. Merges will be reviewed manually and | 
 | automatically, depending on the type of change. | 
 |  | 
 | GRD file changes are allowed only during this phase. If you have a critical | 
 | string change needed after this phase, please reach out to release owner or | 
 | Chrome TPMs. | 
 |  | 
 | **Phase 2: First Four Weeks of Beta Rollout** | 
 |  | 
 | During the first four weeks of Beta, merges should only be requested if: | 
 |  | 
 | * The bug is considered either release blocking or | 
 |   considered a high-impact regression | 
 | * The merge is related to a feature which (1) is entirely gated behind | 
 |   a flag and (2) does not change user functionality in a substantial way | 
 |   (e.g. minor tweaks and metrics code are OK, workflow changes are not) | 
 |  | 
 | Security bugs should be consulted with | 
 | [chrome-security@google.com](chrome-security@google.com) to | 
 | determine criticality. If your issue does not meet the above criteria | 
 | but you would still like to consider this merge, please reach out to | 
 | release owner or TPMs with a detailed justification. | 
 |  | 
 | **Phase 3: Last Two Weeks of Beta and Post Stable** | 
 |  | 
 | During the last 2 weeks of Beta and after stable promotion, merges | 
 | should only be requested for critical, release blocking issues where the | 
 | fix is low complexity. | 
 |  | 
 | Security bugs should be consulted with [chrome-security@](chrome-security@google.com) | 
 | to determine criticality. | 
 |  | 
 | This table below provides key dates and phases as an example, for M61 release. | 
 |  | 
 | Key Event  | Date | 
 | ------- | -------- | 
 | Feature Freeze | June 23rd, 2017 | 
 | Branch Date | July 20th, 2017 | 
 | Branch Stabilization Period | July 20th to August 3rd, 2017 | 
 | Merge Reviews Phase 1 | July 20th to August 3rd, 2017 | 
 | Beta Rollout | August 3rd to September 12th 2017 | 
 | Merge Reviews Phase 2 | August 3rd to August 31st 2017 | 
 | Merge Reviews Phase 3 | August 31st 2017 and post Stable release | 
 | Stable Release | September 6th, 2017 + rollout schedule | 
 |  | 
 | ## Merge Requirements | 
 |  | 
 | Before requesting a merge, please ensure following conditions are met: | 
 | *   **Full automated unit test coverage:** please add unit tests or | 
 |     functional tests before requesting a merge. | 
 | *   **Deployed in Canary for at least 24 hours:** change has to | 
 |     be tested and verified in Canary or Dev, before requesting a | 
 |     merge. Fix should be tested by either test engineering or the | 
 |     original reporter of the bug. | 
 | *   **Safe Merge:** Need full developer confidence that the | 
 |     change will be a safe merge. Safe merge means that your | 
 |     change will not introduce new regressions, or break | 
 |     anything existing. If you are not confident that your | 
 |     merge is fully safe, then reach out to TL or TPMs for | 
 |     guidance. | 
 |  | 
 | ## Merge Request | 
 | If the merge review requirements are met (listed in | 
 | section above) and your change fits one of the timelines | 
 | above, please go ahead and apply the | 
 | Merge-Request-[Milestone Number] label on the bug and | 
 | please provide clear justification in the bug. | 
 |  | 
 | Please provide clear explanation for why a merge is required, what is the | 
 | criticality and impact of the issue, and ensure that bug is correctly | 
 | labeled for all impacted OS's. | 
 |  | 
 | Approved merge requests in Phase 2 and Phase 3 will require a post mortem. | 
 |  | 
 | Once Merge is approved, the bug will be marked with | 
 | Merge-Approved-[Milestone-Number] label. Please merge | 
 | **immediately after**. Please note that if change is not | 
 | merged in time after approval, it can be rejected. | 
 |  | 
 | If merge is rejected, “Merge-Rejected” label will be | 
 | applied. If you think it’s important to consider the | 
 | change for merge and does not meet the criteria above, | 
 | please reach out to the release owners, TPMs or TLs for | 
 | guidance. | 
 |  | 
 | ## Merge Reviews | 
 |  | 
 | The release team has an automated process that helps | 
 | with the merge evaluation process. It will enforce many | 
 | of the rules listed in sections above. If the rules | 
 | above don’t pass, it will either auto-reject or flag | 
 | for manual review. Please allow up to 24 hours for the | 
 | automated process to take effect. | 
 |  | 
 | Manual merge reviews will be performed by release | 
 | owners and TPMs. |