Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 1 | # Chrome Release Cycle |
| 2 | |
| 3 | [TOC] |
| 4 | |
| 5 | ## Overview |
| 6 | |
| 7 | Chrome pushes a new stable version to the public every 6 weeks while |
| 8 | taking 7 weeks to stabilize the beta branch. |
| 9 | |
| 10 | ## Schedule |
| 11 | |
| 12 |  |
| 13 | * Feature freeze and branch point dates are fixed, but release dates may change |
| 14 | depending on the build quality. |
| 15 | * There would be some adjustment in the release schedule due to Chrome no |
| 16 | meeting weeks or holidays. |
| 17 | |
| 18 | ## Key Dates |
| 19 | |
| 20 | ### Feature Freeze |
| 21 | |
| 22 | **2 weeks** before the branch point, the feature freeze is declared! Any feature |
| 23 | planned to launch with this milestone should be code-complete (its |
| 24 | implementation should be done) and enabled on Trunk/Canary so that the test team |
| 25 | can give initial feedback. By the feature freeze, all strings must be landed! |
| 26 | |
| 27 | ### Branch Point |
| 28 | |
| 29 | **Every 6 weeks**, the latest canary is declared as the new milestone |
| 30 | stabilization branch with a number (used as the branch name) associated with it. |
| 31 | The feature enhancement should be completed by the branch point and all |
| 32 | ReleaseBlock-Beta bugs should be fixed. Avoid committing big and risky changes |
| 33 | close to the branch point! |
| 34 | |
| 35 | ### First Beta |
| 36 | |
| 37 | **2 weeks** after the branch point, the first beta release is pushed. All |
| 38 | disabled tests associated with the release milestone should be completely |
| 39 | addressed. New beta builds are pushed weekly until the stable release. |
| 40 | |
| 41 | ### Stable Cut |
| 42 | |
| 43 | The Thursday before the stable release date, the last build from the beta branch |
| 44 | is cut as the release build. All ReleaseBlock-Stable bugs should be fixed by the |
| 45 | stable cut, which consequently corresponds to the absolute last date a merge to |
| 46 | the release branch should be taken for inclusion in the initial stable release. |
| 47 | The stable cut will, unless there are exceptions, use the final beta as its |
Dimitri Glazkov | 2070775d | 2017-10-24 17:47:02 | [diff] [blame^] | 48 | basis. For Chrome OS, the stable cut date may be different than the rest of |
| 49 | Chrome. |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 50 | |
| 51 | ### Stable Release |
| 52 | |
| 53 | **7 weeks** after the branch point a new major version is released. The |
| 54 | stable rollout is staged over time so that any issues can be detected early and |
| 55 | addressed before they reach all users. Each Chrome platform has a different |
| 56 | stable rollout plan and the schedule below can vary based on circumstances: |
| 57 | |
| 58 | * **Desktop**: Desktop consists of three main platforms, Windows, Mac, and |
| 59 | Linux. Linux is ramped up to 100% immediately. Mac and Windows follow a |
| 60 | staged rollout as follows: |
| 61 | * 5% deployment ->15% deployment ->50% deployment ->100% deployment. |
| 62 | * **Android**: Android releases both Chrome and WebView with each release, and |
| 63 | follows a pattern similar to: |
| 64 | * 1% deployment -> 5% deployment -> 10% deployment -> 50% deployment |
| 65 | -> 100% deployment. |
| 66 | * **iOS**: iOS follows a phased release with no control over the following |
| 67 | rollout percentage schedule: |
| 68 | * Day 1: 1% -> Day 2: 2% -> Day 3: 5% -> Day 4: 10% -> Day 5: 20% |
| 69 | -> Day 6: 50% -> Day 7: 100%. |
| 70 | |
| 71 | ### Stable Refresh |
| 72 | |
| 73 | A stable refresh is defined as a release of a new Chrome build outside of the |
| 74 | normal release schedule to fix critical bugs detected during the stable rollout. |
| 75 | Except for extremely critical issues (e.g. security or privacy escalations), |
| 76 | a Chrome stable refresh should not be pushed more than **2 weeks** after the |
| 77 | initial build has been released to the public. In this case, we should consider |
| 78 | punting any detected production issues to the next release. |
Dimitri Glazkov | 2070775d | 2017-10-24 17:47:02 | [diff] [blame^] | 79 | |
| 80 | ## More Info |
| 81 | |
| 82 | For more information, see these [guidelines for considering branch dates in project planning](../release_branch_guidance.md). |