diff options
Diffstat (limited to 'docs/release-process.md')
-rw-r--r-- | docs/release-process.md | 194 |
1 files changed, 184 insertions, 10 deletions
diff --git a/docs/release-process.md b/docs/release-process.md index 22c2fd19..f71a4110 100644 --- a/docs/release-process.md +++ b/docs/release-process.md | |||
@@ -5,6 +5,37 @@ related topics and flows. | |||
5 | 5 | ||
6 | [TOC] | 6 | [TOC] |
7 | 7 | ||
8 | ## Schedule | ||
9 | |||
10 | There is no specific schedule for when releases are made. | ||
11 | Usually it's more along the lines of "enough minor changes have been merged", | ||
12 | or "there's a known issue the maintainers know should get fixed". | ||
13 | If you find a fix has been merged for an issue important to you, but hasn't been | ||
14 | released after a week or so, feel free to [contact] us to request a new release. | ||
15 | |||
16 | ### Release Freezes {#freeze} | ||
17 | |||
18 | We try to observe a regular schedule for when **not** to release. | ||
19 | If something goes wrong, staff need to be active in order to respond quickly & | ||
20 | effectively. | ||
21 | We also don't want to disrupt non-Google organizations if possible. | ||
22 | |||
23 | We generally follow the rules: | ||
24 | |||
25 | * Release during Mon - Thu, 9:00 - 14:00 [US PT] | ||
26 | * Avoid holidays | ||
27 | * All regular [US holidays] | ||
28 | * Large international ones if possible | ||
29 | * All the various [New Years] | ||
30 | * Jan 1 in Gregorian calendar is the most obvious | ||
31 | * Check for large Lunar New Years too | ||
32 | * Follow the normal [Google production freeze schedule] | ||
33 | |||
34 | [US holidays]: https://en.wikipedia.org/wiki/Federal_holidays_in_the_United_States | ||
35 | [US PT]: https://en.wikipedia.org/wiki/Pacific_Time_Zone | ||
36 | [New Years]: https://en.wikipedia.org/wiki/New_Year | ||
37 | [Google production freeze schedule]: http://goto.google.com/prod-freeze | ||
38 | |||
8 | ## Launcher script | 39 | ## Launcher script |
9 | 40 | ||
10 | The main repo script serves as a standalone program and is often referred to as | 41 | The main repo script serves as a standalone program and is often referred to as |
@@ -49,11 +80,12 @@ control how repo finds updates: | |||
49 | 80 | ||
50 | * `--repo-url`: This tells repo where to clone the full repo project itself. | 81 | * `--repo-url`: This tells repo where to clone the full repo project itself. |
51 | It defaults to the official project (`REPO_URL` in the launcher script). | 82 | It defaults to the official project (`REPO_URL` in the launcher script). |
52 | * `--repo-branch`: This tells repo which branch to use for the full project. | 83 | * `--repo-rev`: This tells repo which branch to use for the full project. |
53 | It defaults to the `stable` branch (`REPO_REV` in the launcher script). | 84 | It defaults to the `stable` branch (`REPO_REV` in the launcher script). |
54 | 85 | ||
55 | Whenever `repo sync` is run, repo will check to see if an update is available. | 86 | Whenever `repo sync` is run, repo will, once every 24 hours, see if an update |
56 | It fetches the latest repo-branch from the repo-url. | 87 | is available. |
88 | It fetches the latest repo-rev from the repo-url. | ||
57 | Then it verifies that the latest commit in the branch has a valid signed tag | 89 | Then it verifies that the latest commit in the branch has a valid signed tag |
58 | using `git tag -v` (which uses gpg). | 90 | using `git tag -v` (which uses gpg). |
59 | If the tag is valid, then repo will update its internal checkout to it. | 91 | If the tag is valid, then repo will update its internal checkout to it. |
@@ -64,9 +96,14 @@ If that tag is valid, then repo will warn and use that commit instead. | |||
64 | 96 | ||
65 | If that tag cannot be verified, it gives up and forces the user to resolve. | 97 | If that tag cannot be verified, it gives up and forces the user to resolve. |
66 | 98 | ||
99 | ### Force an update | ||
100 | |||
101 | The `repo selfupdate` command can be used to force an immediate update. | ||
102 | It is not subject to the 24 hour limitation. | ||
103 | |||
67 | ## Branch management | 104 | ## Branch management |
68 | 105 | ||
69 | All development happens on the `master` branch and should generally be stable. | 106 | All development happens on the `main` branch and should generally be stable. |
70 | 107 | ||
71 | Since the repo launcher defaults to tracking the `stable` branch, it is not | 108 | Since the repo launcher defaults to tracking the `stable` branch, it is not |
72 | normally updated until a new release is available. | 109 | normally updated until a new release is available. |
@@ -81,7 +118,7 @@ For example, when `stable` moves from `v1.10.x` to `v1.11.x`, then the `maint` | |||
81 | branch will be updated from `v1.9.x` to `v1.10.x`. | 118 | branch will be updated from `v1.9.x` to `v1.10.x`. |
82 | 119 | ||
83 | We don't have parallel release branches/series. | 120 | We don't have parallel release branches/series. |
84 | Typically all tags are made against the `master` branch and then pushed to the | 121 | Typically all tags are made against the `main` branch and then pushed to the |
85 | `stable` branch to make it available to the rest of the world. | 122 | `stable` branch to make it available to the rest of the world. |
86 | Since repo doesn't typically see a lot of changes, this tends to be OK. | 123 | Since repo doesn't typically see a lot of changes, this tends to be OK. |
87 | 124 | ||
@@ -89,10 +126,10 @@ Since repo doesn't typically see a lot of changes, this tends to be OK. | |||
89 | 126 | ||
90 | When you want to create a new release, you'll need to select a good version and | 127 | When you want to create a new release, you'll need to select a good version and |
91 | create a signed tag using a key registered in repo itself. | 128 | create a signed tag using a key registered in repo itself. |
92 | Typically we just tag the latest version of the `master` branch. | 129 | Typically we just tag the latest version of the `main` branch. |
93 | The tag could be pushed now, but it won't be used by clients normally (since the | 130 | The tag could be pushed now, but it won't be used by clients normally (since the |
94 | default `repo-branch` setting is `stable`). | 131 | default `repo-rev` setting is `stable`). |
95 | This would allow some early testing on systems who explicitly select `master`. | 132 | This would allow some early testing on systems who explicitly select `main`. |
96 | 133 | ||
97 | ### Creating a signed tag | 134 | ### Creating a signed tag |
98 | 135 | ||
@@ -113,7 +150,7 @@ $ export GNUPGHOME=~/.gnupg/repo/ | |||
113 | $ gpg -K | 150 | $ gpg -K |
114 | 151 | ||
115 | # Pick whatever branch or commit you want to tag. | 152 | # Pick whatever branch or commit you want to tag. |
116 | $ r=master | 153 | $ r=main |
117 | 154 | ||
118 | # Pick the new version. | 155 | # Pick the new version. |
119 | $ t=1.12.10 | 156 | $ t=1.12.10 |
@@ -161,7 +198,144 @@ You can create a short changelog using the command: | |||
161 | $ git log --format="%h (%aN) %s" --no-merges origin/stable..$r | 198 | $ git log --format="%h (%aN) %s" --no-merges origin/stable..$r |
162 | ``` | 199 | ``` |
163 | 200 | ||
164 | 201 | ## Project References | |
202 | |||
203 | Here's a table showing the relationship of major tools, their EOL dates, and | ||
204 | their status in Ubuntu & Debian. | ||
205 | Those distros tend to be good indicators of how long we need to support things. | ||
206 | |||
207 | Things in bold indicate stuff to take note of, but does not guarantee that we | ||
208 | still support them. | ||
209 | Things in italics are things we used to care about but probably don't anymore. | ||
210 | |||
211 | | Date | EOL | [Git][rel-g] | [Python][rel-p] | [SSH][rel-o] | [Ubuntu][rel-u] / [Debian][rel-d] | Git | Python | SSH | | ||
212 | |:--------:|:------------:|:------------:|:---------------:|:------------:|-----------------------------------|-----|--------|-----| | ||
213 | | Apr 2008 | | | | 5.0 | | ||
214 | | Jun 2008 | | | | 5.1 | | ||
215 | | Oct 2008 | *Oct 2013* | | 2.6.0 | | *10.04 Lucid* - 10.10 Maverick / *Squeeze* | | ||
216 | | Dec 2008 | *Feb 2009* | | 3.0.0 | | ||
217 | | Feb 2009 | | | | 5.2 | | ||
218 | | Feb 2009 | *Mar 2012* | | | | Debian 5 Lenny | 1.5.6.5 | 2.5.2 | | ||
219 | | Jun 2009 | *Jun 2016* | | 3.1.0 | | *10.04 Lucid* - 10.10 Maverick / *Squeeze* | | ||
220 | | Sep 2009 | | | | 5.3 | *10.04 Lucid* | | ||
221 | | Feb 2010 | *Oct 2012* | 1.7.0 | | | *10.04 Lucid* - *12.04 Precise* - 12.10 Quantal | | ||
222 | | Mar 2010 | | | | 5.4 | | ||
223 | | Apr 2010 | | | | 5.5 | 10.10 Maverick | | ||
224 | | Apr 2010 | *Apr 2015* | | | | *10.04 Lucid* | 1.7.0.4 | 2.6.5 3.1.2 | 5.3 | | ||
225 | | Jul 2010 | *Dec 2019* | | *2.7.0* | | 11.04 Natty - *<current>* | | ||
226 | | Aug 2010 | | | | 5.6 | | ||
227 | | Oct 2010 | | | | | 10.10 Maverick | 1.7.1 | 2.6.6 3.1.3 | 5.5 | | ||
228 | | Jan 2011 | | | | 5.7 | | ||
229 | | Feb 2011 | | | | 5.8 | 11.04 Natty | | ||
230 | | Feb 2011 | *Feb 2016* | | | | Debian 6 Squeeze | 1.7.2.5 | 2.6.6 3.1.3 | | ||
231 | | Apr 2011 | | | | | 11.04 Natty | 1.7.4 | 2.7.1 3.2.0 | 5.8 | | ||
232 | | Sep 2011 | | | | 5.9 | *12.04 Precise* | | ||
233 | | Oct 2011 | *Feb 2016* | | 3.2.0 | | 11.04 Natty - 12.10 Quantal | | ||
234 | | Oct 2011 | | | | | 11.10 Ocelot | 1.7.5.4 | 2.7.2 3.2.2 | 5.8 | | ||
235 | | Apr 2012 | | | | 6.0 | 12.10 Quantal | | ||
236 | | Apr 2012 | *Apr 2019* | | | | *12.04 Precise* | 1.7.9.5 | 2.7.3 3.2.3 | 5.9 | | ||
237 | | Aug 2012 | | | | 6.1 | 13.04 Raring | | ||
238 | | Sep 2012 | *Sep 2017* | | 3.3.0 | | 13.04 Raring - 13.10 Saucy | | ||
239 | | Oct 2012 | *Dec 2014* | 1.8.0 | | | 13.04 Raring - 13.10 Saucy | | ||
240 | | Oct 2012 | | | | | 12.10 Quantal | 1.7.10.4 | 2.7.3 3.2.3 | 6.0 | | ||
241 | | Mar 2013 | | | | 6.2 | 13.10 Saucy | | ||
242 | | Apr 2013 | | | | | 13.04 Raring | 1.8.1.2 | 2.7.4 3.3.1 | 6.1 | | ||
243 | | May 2013 | *May 2018* | | | | Debian 7 Wheezy | 1.7.10.4 | 2.7.3 3.2.3 | | ||
244 | | Sep 2013 | | | | 6.3 | | ||
245 | | Oct 2013 | | | | | 13.10 Saucy | 1.8.3.2 | 2.7.5 3.3.2 | 6.2 | | ||
246 | | Nov 2013 | | | | 6.4 | | ||
247 | | Jan 2014 | | | | 6.5 | | ||
248 | | Feb 2014 | *Dec 2014* | **1.9.0** | | | *14.04 Trusty* | | ||
249 | | Mar 2014 | *Mar 2019* | | *3.4.0* | | *14.04 Trusty* - 15.10 Wily / *Jessie* | | ||
250 | | Mar 2014 | | | | 6.6 | *14.04 Trusty* - 14.10 Utopic | | ||
251 | | Apr 2014 | *Apr 2022* | | | | *14.04 Trusty* | 1.9.1 | 2.7.5 3.4.0 | 6.6 | | ||
252 | | May 2014 | *Dec 2014* | 2.0.0 | | ||
253 | | Aug 2014 | *Dec 2014* | *2.1.0* | | | 14.10 Utopic - 15.04 Vivid / *Jessie* | | ||
254 | | Oct 2014 | | | | 6.7 | 15.04 Vivid | | ||
255 | | Oct 2014 | | | | | 14.10 Utopic | 2.1.0 | 2.7.8 3.4.2 | 6.6 | | ||
256 | | Nov 2014 | *Sep 2015* | 2.2.0 | | ||
257 | | Feb 2015 | *Sep 2015* | 2.3.0 | | ||
258 | | Mar 2015 | | | | 6.8 | | ||
259 | | Apr 2015 | *May 2017* | 2.4.0 | | ||
260 | | Apr 2015 | *Jun 2020* | | | | *Debian 8 Jessie* | 2.1.4 | 2.7.9 3.4.2 | | ||
261 | | Apr 2015 | | | | | 15.04 Vivid | 2.1.4 | 2.7.9 3.4.3 | 6.7 | | ||
262 | | Jul 2015 | *May 2017* | 2.5.0 | | | 15.10 Wily | | ||
263 | | Jul 2015 | | | | 6.9 | 15.10 Wily | | ||
264 | | Aug 2015 | | | | 7.0 | | ||
265 | | Aug 2015 | | | | 7.1 | | ||
266 | | Sep 2015 | *May 2017* | 2.6.0 | | ||
267 | | Sep 2015 | *Sep 2020* | | *3.5.0* | | *16.04 Xenial* - 17.04 Zesty / *Stretch* | | ||
268 | | Oct 2015 | | | | | 15.10 Wily | 2.5.0 | 2.7.9 3.4.3 | 6.9 | | ||
269 | | Jan 2016 | *Jul 2017* | *2.7.0* | | | *16.04 Xenial* | | ||
270 | | Feb 2016 | | | | 7.2 | *16.04 Xenial* | | ||
271 | | Mar 2016 | *Jul 2017* | 2.8.0 | | ||
272 | | Apr 2016 | *Apr 2024* | | | | *16.04 Xenial* | 2.7.4 | 2.7.11 3.5.1 | 7.2 | | ||
273 | | Jun 2016 | *Jul 2017* | 2.9.0 | | | 16.10 Yakkety | | ||
274 | | Jul 2016 | | | | 7.3 | 16.10 Yakkety | | ||
275 | | Sep 2016 | *Sep 2017* | 2.10.0 | | ||
276 | | Oct 2016 | | | | | 16.10 Yakkety | 2.9.3 | 2.7.11 3.5.1 | 7.3 | | ||
277 | | Nov 2016 | *Sep 2017* | *2.11.0* | | | 17.04 Zesty / *Stretch* | | ||
278 | | Dec 2016 | **Dec 2021** | | **3.6.0** | | 17.10 Artful - **18.04 Bionic** - 18.10 Cosmic | | ||
279 | | Dec 2016 | | | | 7.4 | 17.04 Zesty / *Debian 9 Stretch* | | ||
280 | | Feb 2017 | *Sep 2017* | 2.12.0 | | ||
281 | | Mar 2017 | | | | 7.5 | 17.10 Artful | | ||
282 | | Apr 2017 | | | | | 17.04 Zesty | 2.11.0 | 2.7.13 3.5.3 | 7.4 | | ||
283 | | May 2017 | *May 2018* | 2.13.0 | | ||
284 | | Jun 2017 | *Jun 2022* | | | | *Debian 9 Stretch* | 2.11.0 | 2.7.13 3.5.3 | 7.4 | | ||
285 | | Aug 2017 | *Dec 2019* | 2.14.0 | | | 17.10 Artful | | ||
286 | | Oct 2017 | *Dec 2019* | 2.15.0 | | ||
287 | | Oct 2017 | | | | 7.6 | **18.04 Bionic** | | ||
288 | | Oct 2017 | | | | | 17.10 Artful | 2.14.1 | 2.7.14 3.6.3 | 7.5 | | ||
289 | | Jan 2018 | *Dec 2019* | 2.16.0 | | ||
290 | | Apr 2018 | *Mar 2021* | **2.17.0** | | | **18.04 Bionic** | | ||
291 | | Apr 2018 | | | | 7.7 | 18.10 Cosmic | | ||
292 | | Apr 2018 | **Apr 2028** | | | | **18.04 Bionic** | 2.17.0 | 2.7.15 3.6.5 | 7.6 | | ||
293 | | Jun 2018 | *Mar 2021* | 2.18.0 | | ||
294 | | Jun 2018 | **Jun 2023** | | 3.7.0 | | 19.04 Disco - **20.04 Focal** / **Buster** | | ||
295 | | Aug 2018 | | | | 7.8 | | ||
296 | | Sep 2018 | *Mar 2021* | 2.19.0 | | | 18.10 Cosmic | | ||
297 | | Oct 2018 | | | | 7.9 | 19.04 Disco / **Buster** | | ||
298 | | Oct 2018 | | | | | 18.10 Cosmic | 2.19.1 | 2.7.15 3.6.6 | 7.7 | | ||
299 | | Dec 2018 | *Mar 2021* | **2.20.0** | | | 19.04 Disco - 19.10 Eoan / **Buster** | | ||
300 | | Feb 2019 | *Mar 2021* | 2.21.0 | | ||
301 | | Apr 2019 | | | | 8.0 | 19.10 Eoan | | ||
302 | | Apr 2019 | | | | | 19.04 Disco | 2.20.1 | 2.7.16 3.7.3 | 7.9 | | ||
303 | | Jun 2019 | | 2.22.0 | | ||
304 | | Jul 2019 | **Jul 2024** | | | | **Debian 10 Buster** | 2.20.1 | 2.7.16 3.7.3 | 7.9 | | ||
305 | | Aug 2019 | *Mar 2021* | 2.23.0 | | ||
306 | | Oct 2019 | **Oct 2024** | | 3.8.0 | | **20.04 Focal** - 20.10 Groovy | | ||
307 | | Oct 2019 | | | | 8.1 | | ||
308 | | Oct 2019 | | | | | 19.10 Eoan | 2.20.1 | 2.7.17 3.7.5 | 8.0 | | ||
309 | | Nov 2019 | *Mar 2021* | 2.24.0 | | ||
310 | | Jan 2020 | *Mar 2021* | 2.25.0 | | | **20.04 Focal** | | ||
311 | | Feb 2020 | | | | 8.2 | **20.04 Focal** | | ||
312 | | Mar 2020 | *Mar 2021* | 2.26.0 | | ||
313 | | Apr 2020 | **Apr 2030** | | | | **20.04 Focal** | 2.25.1 | 2.7.17 3.8.2 | 8.2 | | ||
314 | | May 2020 | *Mar 2021* | 2.27.0 | | | 20.10 Groovy | | ||
315 | | May 2020 | | | | 8.3 | | ||
316 | | Jul 2020 | *Mar 2021* | 2.28.0 | | ||
317 | | Sep 2020 | | | | 8.4 | 21.04 Hirsute / **Bullseye** | | ||
318 | | Oct 2020 | *Mar 2021* | 2.29.0 | | ||
319 | | Oct 2020 | | | | | 20.10 Groovy | 2.27.0 | 2.7.18 3.8.6 | 8.3 | | ||
320 | | Oct 2020 | **Oct 2025** | | 3.9.0 | | 21.04 Hirsute / **Bullseye** | | ||
321 | | Dec 2020 | *Mar 2021* | 2.30.0 | | | 21.04 Hirsute / **Bullseye** | | ||
322 | | Mar 2021 | | 2.31.0 | | ||
323 | | Mar 2021 | | | | 8.5 | | ||
324 | | Apr 2021 | | | | 8.6 | | ||
325 | | Apr 2021 | *Jan 2022* | | | | 21.04 Hirsute | 2.30.2 | 2.7.18 3.9.4 | 8.4 | | ||
326 | | Jun 2021 | | 2.32.0 | | ||
327 | | Aug 2021 | | 2.33.0 | | ||
328 | | Aug 2021 | | | | 8.7 | | ||
329 | | Aug 2021 | **Aug 2026** | | | | **Debian 11 Bullseye** | 2.30.2 | 2.7.18 3.9.2 | 8.4 | | ||
330 | | **Date** | **EOL** | **[Git][rel-g]** | **[Python][rel-p]** | **[SSH][rel-o]** | **[Ubuntu][rel-u] / [Debian][rel-d]** | **Git** | **Python** | **SSH** | | ||
331 | |||
332 | |||
333 | [contact]: ../README.md#contact | ||
334 | [rel-d]: https://en.wikipedia.org/wiki/Debian_version_history | ||
335 | [rel-g]: https://en.wikipedia.org/wiki/Git#Releases | ||
336 | [rel-o]: https://www.openssh.com/releasenotes.html | ||
337 | [rel-p]: https://en.wikipedia.org/wiki/History_of_Python#Table_of_versions | ||
338 | [rel-u]: https://en.wikipedia.org/wiki/Ubuntu_version_history#Table_of_versions | ||
165 | [example announcement]: https://groups.google.com/d/topic/repo-discuss/UGBNismWo1M/discussion | 339 | [example announcement]: https://groups.google.com/d/topic/repo-discuss/UGBNismWo1M/discussion |
166 | [repo-discuss@googlegroups.com]: https://groups.google.com/forum/#!forum/repo-discuss | 340 | [repo-discuss@googlegroups.com]: https://groups.google.com/forum/#!forum/repo-discuss |
167 | [go/repo-release]: https://goto.google.com/repo-release | 341 | [go/repo-release]: https://goto.google.com/repo-release |