Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 1 | # Chrome Release Cycle |
| 2 | |
| 3 | [TOC] |
| 4 | |
| 5 | ## Overview |
| 6 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 7 | Chrome ships a new milestone (major version) to the stable channel every four |
| 8 | weeks. The new milestone is developed on main for four weeks (beginning on |
| 9 | branch point for the previous milestone) before the milestone's branch is cut, |
Harry Souders | 8502781 | 2023-10-02 16:50:04 | [diff] [blame] | 10 | which is then stabilized for four weeks before being shipped to stable. Once |
| 11 | a milestone reaches stable, weekly updates (called refreshes) are shipped to |
| 12 | stable to deploy security fixes and keep Chrome's |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 13 | [patch gap](https://groups.google.com/a/chromium.org/g/security-dev/c/fbiuFbW07vI) |
Alex Mineer | b201d4a | 2021-11-04 22:30:29 | [diff] [blame] | 14 | short. |
| 15 | |
| 16 | ## Extended Stable |
| 17 | |
| 18 | Chrome Browser also maintains every other milestone branch for four additional |
| 19 | weeks by backporting important security fixes to create an extended stable |
| 20 | channel, where a new milestone is shipped every eight weeks. During the first |
| 21 | four weeks of this milestone, both stable and extended stable are shipped |
| 22 | identical releases; see the [channel lifecycle](#channel-lifecycle) to learn |
| 23 | more. The extended stable channel is only available to enterprises on the |
| 24 | Windows and Mac platforms, and can be enabled via enterprise policies. Biweekly |
Harry Souders | 8502781 | 2023-10-02 16:50:04 | [diff] [blame] | 25 | refreshes are shipped to extended stable. |
Alex Mineer | b201d4a | 2021-11-04 22:30:29 | [diff] [blame] | 26 | |
| 27 | While extended stable is only shipped to Windows and Mac, security fixes that |
| 28 | are relevant to any Chrome Browser platforms will be landed on the extended |
| 29 | stable branch for use by embedders. It's important to note that while the team |
| 30 | will make an effort to backport all important security fixes to extended |
| 31 | stable, complex and risky changes as well as larger features that improve |
| 32 | security (e.g. |
| 33 | [Site Isolation](https://www.chromium.org/Home/chromium-security/site-isolation)) |
| 34 | may not be viable to backport and will only be available on the stable channel; |
| 35 | as such, using the stable channel and stable branches is recommended for any |
| 36 | team where security is a primary concern. |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 37 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 38 | ## Release Cycle |
| 39 | The diagram below shows when our different development checkpoints occur as a |
| 40 | milestone proceeds through our release cycle: |
| 41 | |
| 42 |  |
| 43 | |
| 44 | * The primary development span (four weeks) of each milestone is not depicted |
| 45 | above, though it is visible in the [channel lifecycle](#channel-lifecycle) |
| 46 | below. |
| 47 | * You can find specific dates for each milestone's development checkpoints on |
| 48 | our [release calendar](https://chromiumdash.appspot.com/schedule). |
| 49 | * Some dates will vary between different platforms; see the release calendar |
| 50 | for specifics dates for each platform. |
Harry Souders | b312671 | 2025-01-23 18:00:27 | [diff] [blame] | 51 | * Branch point dates are fixed, but release dates are |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 52 | subject to change based on a variety of factors (e.g. late-breaking |
| 53 | regressions). |
| 54 | * Release dates are adjusted to avoid shipping new milestones to stable around |
| 55 | major holidays to ensure proper coverage if issues arise. These adjustments |
| 56 | are already depicted in our release schedule. |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 57 | |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 58 | ### Branch Point |
| 59 | |
Harry Souders | b312671 | 2025-01-23 18:00:27 | [diff] [blame] | 60 | The branch generated by the daily canary created at branch point is designated |
| 61 | as the milestone branch, which is then stabilized over the following four weeks. |
| 62 | |
| 63 | Before Branch Point: |
| 64 | |
| 65 | 1. All new features planned to launch in this milestone should be code complete |
| 66 | (all primary functionality implemented). Features which are not code |
| 67 | complete by branch point should be punted to the following milestone. |
| 68 | 2. All strings should be landed. |
| 69 | 3. All beta blocking bugs should be addressed. |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 70 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 71 | Please consider [these guidelines](../release_branch_guidance.md) when landing |
| 72 | code around branch point. |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 73 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 74 | ### Beta Promotion |
| 75 | |
Harry Souders | 8502781 | 2023-10-02 16:50:04 | [diff] [blame] | 76 | Shortly after branch, the new milestone is shipped to the beta channel for the |
| 77 | first time. A new build is shipped to beta each following week for three |
| 78 | additional weeks so that the release spends four weeks total in the beta |
| 79 | channel. |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 80 | |
| 81 | ### Stable Cut |
| 82 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 83 | Stable cut is the day that our stable release candidate build will be |
| 84 | generated. This build is then shipped to beta to gather user feedback for one |
| 85 | week. Any changes that land after stable cut may or may not be included in the |
| 86 | stable release, and thus all stable blocking issues must be fixed by stable |
| 87 | cut. |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 88 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 89 | ### Stable Promotion |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 90 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 91 | After four weeks in the beta channel, the new milestone is shipped to the |
| 92 | stable channel for the first time. The rollout is staged over time so that any |
| 93 | early issues that arise can be addressed before they reach all users. The new |
| 94 | release generally reaches all users within one to two weeks unless major issues |
| 95 | arise that cannot be addressed quickly. |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 96 | |
Harry Souders | d65c2ae | 2023-04-05 23:49:46 | [diff] [blame] | 97 | To get better statistical data for staged rollouts, each rollout will consist of |
| 98 | two separate builds which are identical, except for the build number. There is no |
| 99 | harm in being on the lower build number, and all users are expected to be |
Srinivas Sista | 75d234f | 2022-05-12 18:42:25 | [diff] [blame] | 100 | automatically updated to the higher build number as part of the rollout process. |
| 101 | |
Claude | e37d8b333 | 2017-06-19 21:39:05 | [diff] [blame] | 102 | ### Stable Refresh |
| 103 | |
Harry Souders | 8502781 | 2023-10-02 16:50:04 | [diff] [blame] | 104 | The stable channel is refreshed every week, and the extended stable channels is |
| 105 | refreshed every two weeks. These refreshes typically contain important security |
| 106 | fixes as well as any urgent regression fixes that may be available at the |
| 107 | discretion of the release team. |
Dimitri Glazkov | 2070775d | 2017-10-24 17:47:02 | [diff] [blame] | 108 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 109 | ## Channel Lifecycle |
Dimitri Glazkov | 2070775d | 2017-10-24 17:47:02 | [diff] [blame] | 110 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 111 | The diagram below shows how different milestones proceed through Chrome's |
| 112 | different release channels: |
Alex Mineer | e76a8f5b | 2021-03-04 17:29:32 | [diff] [blame] | 113 | |
Alex Mineer | 2c3a5a9 | 2021-09-10 22:29:47 | [diff] [blame] | 114 |  |
| 115 | |
| 116 | * As noted above, both stable and extended stable ship the same versions for |
| 117 | the first four weeks of life, after which the two diverge. |
| 118 | * There is no extended beta channel; instead, the standard four week beta cycle |
| 119 | is used to stabilize both stable and extended stable. Enterprises |
| 120 | who choose to opt into the eight week extended stable should continue to run |
| 121 | the beta channel as they do today in order to proactively identify issues |
| 122 | that may impact their environments. |
| 123 | |
| 124 | ## Milestone Branch Support |
| 125 | |
| 126 | The diagram below shows the lifespan of each milestone branch: |
| 127 | |
| 128 |  |
| 129 | |
| 130 | While a milestone branch is active, branch infrastructure (e.g. branch CQ) will |
| 131 | be kept active, and important security fixes will be considered for backport. |
| 132 | An endpoint which describes currently active branches and their respective |
| 133 | channels is under consideration, and if built will be available ahead of launch |
| 134 | of the new extended stable channel and the four week release cycle. |