summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/internal-fs-layout.md8
-rw-r--r--docs/manifest-format.md58
-rw-r--r--docs/release-process.md172
3 files changed, 170 insertions, 68 deletions
diff --git a/docs/internal-fs-layout.md b/docs/internal-fs-layout.md
index 0c59f988..af6a4523 100644
--- a/docs/internal-fs-layout.md
+++ b/docs/internal-fs-layout.md
@@ -110,6 +110,8 @@ Instead, you should use standard Git workflows like [git worktree] or
110[gitsubmodules] with [superprojects]. 110[gitsubmodules] with [superprojects].
111*** 111***
112 112
113* `copy-link-files.json`: Tracking file used by `repo sync` to determine when
114 copyfile or linkfile are added or removed and need corresponding updates.
113* `project.list`: Tracking file used by `repo sync` to determine when projects 115* `project.list`: Tracking file used by `repo sync` to determine when projects
114 are added or removed and need corresponding updates in the checkout. 116 are added or removed and need corresponding updates in the checkout.
115* `projects/`: Bare checkouts of every project synced by the manifest. The 117* `projects/`: Bare checkouts of every project synced by the manifest. The
@@ -144,12 +146,18 @@ Instead, you should use standard Git workflows like [git worktree] or
144 146
145The `.repo/manifests.git/config` file is used to track settings for the entire 147The `.repo/manifests.git/config` file is used to track settings for the entire
146repo client checkout. 148repo client checkout.
149
147Most settings use the `[repo]` section to avoid conflicts with git. 150Most settings use the `[repo]` section to avoid conflicts with git.
151
152Everything under `[repo.syncstate.*]` is used to keep track of sync details for logging
153purposes.
154
148User controlled settings are initialized when running `repo init`. 155User controlled settings are initialized when running `repo init`.
149 156
150| Setting | `repo init` Option | Use/Meaning | 157| Setting | `repo init` Option | Use/Meaning |
151|------------------- |---------------------------|-------------| 158|------------------- |---------------------------|-------------|
152| manifest.groups | `--groups` & `--platform` | The manifest groups to sync | 159| manifest.groups | `--groups` & `--platform` | The manifest groups to sync |
160| manifest.standalone | `--standalone-manifest` | Download manifest as static file instead of creating checkout |
153| repo.archive | `--archive` | Use `git archive` for checkouts | 161| repo.archive | `--archive` | Use `git archive` for checkouts |
154| repo.clonebundle | `--clone-bundle` | Whether the initial sync used clone.bundle explicitly | 162| repo.clonebundle | `--clone-bundle` | Whether the initial sync used clone.bundle explicitly |
155| repo.clonefilter | `--clone-filter` | Filter setting when using [partial git clones] | 163| repo.clonefilter | `--clone-filter` | Filter setting when using [partial git clones] |
diff --git a/docs/manifest-format.md b/docs/manifest-format.md
index da83d0dd..8e0049b3 100644
--- a/docs/manifest-format.md
+++ b/docs/manifest-format.md
@@ -31,11 +31,12 @@ following DTD:
31 extend-project*, 31 extend-project*,
32 repo-hooks?, 32 repo-hooks?,
33 superproject?, 33 superproject?,
34 contactinfo?,
34 include*)> 35 include*)>
35 36
36 <!ELEMENT notice (#PCDATA)> 37 <!ELEMENT notice (#PCDATA)>
37 38
38 <!ELEMENT remote EMPTY> 39 <!ELEMENT remote (annotation*)>
39 <!ATTLIST remote name ID #REQUIRED> 40 <!ATTLIST remote name ID #REQUIRED>
40 <!ATTLIST remote alias CDATA #IMPLIED> 41 <!ATTLIST remote alias CDATA #IMPLIED>
41 <!ATTLIST remote fetch CDATA #REQUIRED> 42 <!ATTLIST remote fetch CDATA #REQUIRED>
@@ -89,20 +90,26 @@ following DTD:
89 <!ELEMENT extend-project EMPTY> 90 <!ELEMENT extend-project EMPTY>
90 <!ATTLIST extend-project name CDATA #REQUIRED> 91 <!ATTLIST extend-project name CDATA #REQUIRED>
91 <!ATTLIST extend-project path CDATA #IMPLIED> 92 <!ATTLIST extend-project path CDATA #IMPLIED>
93 <!ATTLIST extend-project dest-path CDATA #IMPLIED>
92 <!ATTLIST extend-project groups CDATA #IMPLIED> 94 <!ATTLIST extend-project groups CDATA #IMPLIED>
93 <!ATTLIST extend-project revision CDATA #IMPLIED> 95 <!ATTLIST extend-project revision CDATA #IMPLIED>
94 <!ATTLIST extend-project remote CDATA #IMPLIED> 96 <!ATTLIST extend-project remote CDATA #IMPLIED>
95 97
96 <!ELEMENT remove-project EMPTY> 98 <!ELEMENT remove-project EMPTY>
97 <!ATTLIST remove-project name CDATA #REQUIRED> 99 <!ATTLIST remove-project name CDATA #REQUIRED>
100 <!ATTLIST remove-project optional CDATA #IMPLIED>
98 101
99 <!ELEMENT repo-hooks EMPTY> 102 <!ELEMENT repo-hooks EMPTY>
100 <!ATTLIST repo-hooks in-project CDATA #REQUIRED> 103 <!ATTLIST repo-hooks in-project CDATA #REQUIRED>
101 <!ATTLIST repo-hooks enabled-list CDATA #REQUIRED> 104 <!ATTLIST repo-hooks enabled-list CDATA #REQUIRED>
102 105
103 <!ELEMENT superproject (EMPTY)> 106 <!ELEMENT superproject EMPTY>
104 <!ATTLIST superproject name CDATA #REQUIRED> 107 <!ATTLIST superproject name CDATA #REQUIRED>
105 <!ATTLIST superproject remote IDREF #IMPLIED> 108 <!ATTLIST superproject remote IDREF #IMPLIED>
109 <!ATTLIST superproject revision CDATA #IMPLIED>
110
111 <!ELEMENT contactinfo EMPTY>
112 <!ATTLIST contactinfo bugurl CDATA #REQUIRED>
106 113
107 <!ELEMENT include EMPTY> 114 <!ELEMENT include EMPTY>
108 <!ATTLIST include name CDATA #REQUIRED> 115 <!ATTLIST include name CDATA #REQUIRED>
@@ -331,6 +338,11 @@ against changes to the original manifest.
331Attribute `path`: If specified, limit the change to projects checked out 338Attribute `path`: If specified, limit the change to projects checked out
332at the specified path, rather than all projects with the given name. 339at the specified path, rather than all projects with the given name.
333 340
341Attribute `dest-path`: If specified, a path relative to the top directory
342of the repo client where the Git working directory for this project
343should be placed. This is used to move a project in the checkout by
344overriding the existing `path` setting.
345
334Attribute `groups`: List of additional groups to which this project 346Attribute `groups`: List of additional groups to which this project
335belongs. Same syntax as the corresponding element of `project`. 347belongs. Same syntax as the corresponding element of `project`.
336 348
@@ -343,12 +355,12 @@ project. Same syntax as the corresponding element of `project`.
343### Element annotation 355### Element annotation
344 356
345Zero or more annotation elements may be specified as children of a 357Zero or more annotation elements may be specified as children of a
346project element. Each element describes a name-value pair that will be 358project or remote element. Each element describes a name-value pair.
347exported into each project's environment during a 'forall' command, 359For projects, this name-value pair will be exported into each project's
348prefixed with REPO__. In addition, there is an optional attribute 360environment during a 'forall' command, prefixed with `REPO__`. In addition,
349"keep" which accepts the case insensitive values "true" (default) or 361there is an optional attribute "keep" which accepts the case insensitive values
350"false". This attribute determines whether or not the annotation will 362"true" (default) or "false". This attribute determines whether or not the
351be kept when exported with the manifest subcommand. 363annotation will be kept when exported with the manifest subcommand.
352 364
353### Element copyfile 365### Element copyfile
354 366
@@ -389,6 +401,9 @@ This element is mostly useful in a local manifest file, where
389the user can remove a project, and possibly replace it with their 401the user can remove a project, and possibly replace it with their
390own definition. 402own definition.
391 403
404Attribute `optional`: Set to true to ignore remove-project elements with no
405matching `project` element.
406
392### Element repo-hooks 407### Element repo-hooks
393 408
394NB: See the [practical documentation](./repo-hooks.md) for using repo hooks. 409NB: See the [practical documentation](./repo-hooks.md) for using repo hooks.
@@ -405,7 +420,7 @@ Attribute `enabled-list`: List of hooks to use, whitespace or comma separated.
405### Element superproject 420### Element superproject
406 421
407*** 422***
408 *Note*: This is currently a WIP. 423*Note*: This is currently a WIP.
409*** 424***
410 425
411NB: See the [git superprojects documentation]( 426NB: See the [git superprojects documentation](
@@ -424,6 +439,24 @@ same meaning as project's name attribute. See the
424Attribute `remote`: Name of a previously defined remote element. 439Attribute `remote`: Name of a previously defined remote element.
425If not supplied the remote given by the default element is used. 440If not supplied the remote given by the default element is used.
426 441
442Attribute `revision`: Name of the Git branch the manifest wants
443to track for this superproject. If not supplied the revision given
444by the remote element is used if applicable, else the default
445element is used.
446
447### Element contactinfo
448
449***
450*Note*: This is currently a WIP.
451***
452
453This element is used to let manifest authors self-register contact info.
454It has "bugurl" as a required atrribute. This element can be repeated,
455and any later entries will clobber earlier ones. This would allow manifest
456authors who extend manifests to specify their own contact info.
457
458Attribute `bugurl`: The URL to file a bug against the manifest owner.
459
427### Element include 460### Element include
428 461
429This element provides the capability of including another manifest 462This element provides the capability of including another manifest
@@ -468,6 +501,9 @@ these extra projects.
468Manifest files stored in `$TOP_DIR/.repo/local_manifests/*.xml` will 501Manifest files stored in `$TOP_DIR/.repo/local_manifests/*.xml` will
469be loaded in alphabetical order. 502be loaded in alphabetical order.
470 503
504Projects from local manifest files are added into
505local::<local manifest filename> group.
506
471The legacy `$TOP_DIR/.repo/local_manifest.xml` path is no longer supported. 507The legacy `$TOP_DIR/.repo/local_manifest.xml` path is no longer supported.
472 508
473 509
diff --git a/docs/release-process.md b/docs/release-process.md
index 43209eb0..f71a4110 100644
--- a/docs/release-process.md
+++ b/docs/release-process.md
@@ -83,7 +83,8 @@ control how repo finds updates:
83* `--repo-rev`: 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.
84 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).
85 85
86Whenever `repo sync` is run, repo will check to see if an update is available. 86Whenever `repo sync` is run, repo will, once every 24 hours, see if an update
87is available.
87It fetches the latest repo-rev from the repo-url. 88It fetches the latest repo-rev from the repo-url.
88Then it verifies that the latest commit in the branch has a valid signed tag 89Then it verifies that the latest commit in the branch has a valid signed tag
89using `git tag -v` (which uses gpg). 90using `git tag -v` (which uses gpg).
@@ -95,6 +96,11 @@ If that tag is valid, then repo will warn and use that commit instead.
95 96
96If that tag cannot be verified, it gives up and forces the user to resolve. 97If that tag cannot be verified, it gives up and forces the user to resolve.
97 98
99### Force an update
100
101The `repo selfupdate` command can be used to force an immediate update.
102It is not subject to the 24 hour limitation.
103
98## Branch management 104## Branch management
99 105
100All development happens on the `main` branch and should generally be stable. 106All development happens on the `main` branch and should generally be stable.
@@ -202,80 +208,132 @@ Things in bold indicate stuff to take note of, but does not guarantee that we
202still support them. 208still support them.
203Things in italics are things we used to care about but probably don't anymore. 209Things in italics are things we used to care about but probably don't anymore.
204 210
205| Date | EOL | [Git][rel-g] | [Python][rel-p] | [Ubuntu][rel-u] / [Debian][rel-d] | Git | Python | 211| Date | EOL | [Git][rel-g] | [Python][rel-p] | [SSH][rel-o] | [Ubuntu][rel-u] / [Debian][rel-d] | Git | Python | SSH |
206|:--------:|:------------:|--------------|-----------------|-----------------------------------|-----|--------| 212|:--------:|:------------:|:------------:|:---------------:|:------------:|-----------------------------------|-----|--------|-----|
207| Oct 2008 | *Oct 2013* | | 2.6.0 | *10.04 Lucid* - 10.10 Maverick / *Squeeze* | 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* |
208| Dec 2008 | *Feb 2009* | | 3.0.0 | 216| Dec 2008 | *Feb 2009* | | 3.0.0 |
209| Feb 2009 | *Mar 2012* | | | Debian 5 Lenny | 1.5.6.5 | 2.5.2 | 217| Feb 2009 | | | | 5.2 |
210| Jun 2009 | *Jun 2016* | | 3.1.0 | *10.04 Lucid* - 10.10 Maverick / *Squeeze* | 218| Feb 2009 | *Mar 2012* | | | | Debian 5 Lenny | 1.5.6.5 | 2.5.2 |
211| Feb 2010 | *Oct 2012* | 1.7.0 | | *10.04 Lucid* - *12.04 Precise* - 12.10 Quantal | 219| Jun 2009 | *Jun 2016* | | 3.1.0 | | *10.04 Lucid* - 10.10 Maverick / *Squeeze* |
212| Apr 2010 | *Apr 2015* | | | *10.04 Lucid* | 1.7.0.4 | 2.6.5 3.1.2 | 220| Sep 2009 | | | | 5.3 | *10.04 Lucid* |
213| Jul 2010 | *Dec 2019* | | **2.7.0** | 11.04 Natty - **<current>** | 221| Feb 2010 | *Oct 2012* | 1.7.0 | | | *10.04 Lucid* - *12.04 Precise* - 12.10 Quantal |
214| Oct 2010 | | | | 10.10 Maverick | 1.7.1 | 2.6.6 3.1.3 | 222| Mar 2010 | | | | 5.4 |
215| Feb 2011 | *Feb 2016* | | | Debian 6 Squeeze | 1.7.2.5 | 2.6.6 3.1.3 | 223| Apr 2010 | | | | 5.5 | 10.10 Maverick |
216| Apr 2011 | | | | 11.04 Natty | 1.7.4 | 2.7.1 3.2.0 | 224| Apr 2010 | *Apr 2015* | | | | *10.04 Lucid* | 1.7.0.4 | 2.6.5 3.1.2 | 5.3 |
217| Oct 2011 | *Feb 2016* | | 3.2.0 | 11.04 Natty - 12.10 Quantal | 225| Jul 2010 | *Dec 2019* | | *2.7.0* | | 11.04 Natty - *<current>* |
218| Oct 2011 | | | | 11.10 Ocelot | 1.7.5.4 | 2.7.2 3.2.2 | 226| Aug 2010 | | | | 5.6 |
219| Apr 2012 | *Apr 2019* | | | *12.04 Precise* | 1.7.9.5 | 2.7.3 3.2.3 | 227| Oct 2010 | | | | | 10.10 Maverick | 1.7.1 | 2.6.6 3.1.3 | 5.5 |
220| Sep 2012 | *Sep 2017* | | 3.3.0 | 13.04 Raring - 13.10 Saucy | 228| Jan 2011 | | | | 5.7 |
221| Oct 2012 | *Dec 2014* | 1.8.0 | | 13.04 Raring - 13.10 Saucy | 229| Feb 2011 | | | | 5.8 | 11.04 Natty |
222| Oct 2012 | | | | 12.10 Quantal | 1.7.10.4 | 2.7.3 3.2.3 | 230| Feb 2011 | *Feb 2016* | | | | Debian 6 Squeeze | 1.7.2.5 | 2.6.6 3.1.3 |
223| Apr 2013 | | | | 13.04 Raring | 1.8.1.2 | 2.7.4 3.3.1 | 231| Apr 2011 | | | | | 11.04 Natty | 1.7.4 | 2.7.1 3.2.0 | 5.8 |
224| May 2013 | *May 2018* | | | Debian 7 Wheezy | 1.7.10.4 | 2.7.3 3.2.3 | 232| Sep 2011 | | | | 5.9 | *12.04 Precise* |
225| Oct 2013 | | | | 13.10 Saucy | 1.8.3.2 | 2.7.5 3.3.2 | 233| Oct 2011 | *Feb 2016* | | 3.2.0 | | 11.04 Natty - 12.10 Quantal |
226| Feb 2014 | *Dec 2014* | **1.9.0** | | **14.04 Trusty** | 234| Oct 2011 | | | | | 11.10 Ocelot | 1.7.5.4 | 2.7.2 3.2.2 | 5.8 |
227| Mar 2014 | *Mar 2019* | | **3.4.0** | **14.04 Trusty** - 15.10 Wily / **Jessie** | 235| Apr 2012 | | | | 6.0 | 12.10 Quantal |
228| Apr 2014 | **Apr 2022** | | | **14.04 Trusty** | 1.9.1 | 2.7.5 3.4.0 | 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 |
229| May 2014 | *Dec 2014* | 2.0.0 | 252| May 2014 | *Dec 2014* | 2.0.0 |
230| Aug 2014 | *Dec 2014* | **2.1.0** | | 14.10 Utopic - 15.04 Vivid / **Jessie** | 253| Aug 2014 | *Dec 2014* | *2.1.0* | | | 14.10 Utopic - 15.04 Vivid / *Jessie* |
231| Oct 2014 | | | | 14.10 Utopic | 2.1.0 | 2.7.8 3.4.2 | 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 |
232| Nov 2014 | *Sep 2015* | 2.2.0 | 256| Nov 2014 | *Sep 2015* | 2.2.0 |
233| Feb 2015 | *Sep 2015* | 2.3.0 | 257| Feb 2015 | *Sep 2015* | 2.3.0 |
258| Mar 2015 | | | | 6.8 |
234| Apr 2015 | *May 2017* | 2.4.0 | 259| Apr 2015 | *May 2017* | 2.4.0 |
235| Apr 2015 | **Jun 2020** | | | **Debian 8 Jessie** | 2.1.4 | 2.7.9 3.4.2 | 260| Apr 2015 | *Jun 2020* | | | | *Debian 8 Jessie* | 2.1.4 | 2.7.9 3.4.2 |
236| Apr 2015 | | | | 15.04 Vivid | 2.1.4 | 2.7.9 3.4.3 | 261| Apr 2015 | | | | | 15.04 Vivid | 2.1.4 | 2.7.9 3.4.3 | 6.7 |
237| Jul 2015 | *May 2017* | 2.5.0 | | 15.10 Wily | 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 |
238| Sep 2015 | *May 2017* | 2.6.0 | 266| Sep 2015 | *May 2017* | 2.6.0 |
239| Sep 2015 | **Sep 2020** | | **3.5.0** | **16.04 Xenial** - 17.04 Zesty / **Stretch** | 267| Sep 2015 | *Sep 2020* | | *3.5.0* | | *16.04 Xenial* - 17.04 Zesty / *Stretch* |
240| Oct 2015 | | | | 15.10 Wily | 2.5.0 | 2.7.9 3.4.3 | 268| Oct 2015 | | | | | 15.10 Wily | 2.5.0 | 2.7.9 3.4.3 | 6.9 |
241| Jan 2016 | *Jul 2017* | **2.7.0** | | **16.04 Xenial** | 269| Jan 2016 | *Jul 2017* | *2.7.0* | | | *16.04 Xenial* |
270| Feb 2016 | | | | 7.2 | *16.04 Xenial* |
242| Mar 2016 | *Jul 2017* | 2.8.0 | 271| Mar 2016 | *Jul 2017* | 2.8.0 |
243| Apr 2016 | **Apr 2024** | | | **16.04 Xenial** | 2.7.4 | 2.7.11 3.5.1 | 272| Apr 2016 | *Apr 2024* | | | | *16.04 Xenial* | 2.7.4 | 2.7.11 3.5.1 | 7.2 |
244| Jun 2016 | *Jul 2017* | 2.9.0 | | 16.10 Yakkety | 273| Jun 2016 | *Jul 2017* | 2.9.0 | | | 16.10 Yakkety |
274| Jul 2016 | | | | 7.3 | 16.10 Yakkety |
245| Sep 2016 | *Sep 2017* | 2.10.0 | 275| Sep 2016 | *Sep 2017* | 2.10.0 |
246| Oct 2016 | | | | 16.10 Yakkety | 2.9.3 | 2.7.11 3.5.1 | 276| Oct 2016 | | | | | 16.10 Yakkety | 2.9.3 | 2.7.11 3.5.1 | 7.3 |
247| Nov 2016 | *Sep 2017* | **2.11.0** | | 17.04 Zesty / **Stretch** | 277| Nov 2016 | *Sep 2017* | *2.11.0* | | | 17.04 Zesty / *Stretch* |
248| Dec 2016 | **Dec 2021** | | **3.6.0** | 17.10 Artful - **18.04 Bionic** - 18.10 Cosmic | 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* |
249| Feb 2017 | *Sep 2017* | 2.12.0 | 280| Feb 2017 | *Sep 2017* | 2.12.0 |
250| Apr 2017 | | | | 17.04 Zesty | 2.11.0 | 2.7.13 3.5.3 | 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 |
251| May 2017 | *May 2018* | 2.13.0 | 283| May 2017 | *May 2018* | 2.13.0 |
252| Jun 2017 | **Jun 2022** | | | **Debian 9 Stretch** | 2.11.0 | 2.7.13 3.5.3 | 284| Jun 2017 | *Jun 2022* | | | | *Debian 9 Stretch* | 2.11.0 | 2.7.13 3.5.3 | 7.4 |
253| Aug 2017 | *Dec 2019* | 2.14.0 | | 17.10 Artful | 285| Aug 2017 | *Dec 2019* | 2.14.0 | | | 17.10 Artful |
254| Oct 2017 | *Dec 2019* | 2.15.0 | 286| Oct 2017 | *Dec 2019* | 2.15.0 |
255| Oct 2017 | | | | 17.10 Artful | 2.14.1 | 2.7.14 3.6.3 | 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 |
256| Jan 2018 | *Dec 2019* | 2.16.0 | 289| Jan 2018 | *Dec 2019* | 2.16.0 |
257| Apr 2018 | *Dec 2019* | 2.17.0 | | **18.04 Bionic** | 290| Apr 2018 | *Mar 2021* | **2.17.0** | | | **18.04 Bionic** |
258| Apr 2018 | **Apr 2028** | | | **18.04 Bionic** | 2.17.0 | 2.7.15 3.6.5 | 291| Apr 2018 | | | | 7.7 | 18.10 Cosmic |
259| Jun 2018 | *Dec 2019* | 2.18.0 | 292| Apr 2018 | **Apr 2028** | | | | **18.04 Bionic** | 2.17.0 | 2.7.15 3.6.5 | 7.6 |
260| Jun 2018 | **Jun 2023** | | 3.7.0 | 19.04 Disco - **20.04 Focal** / **Buster** | 293| Jun 2018 | *Mar 2021* | 2.18.0 |
261| Sep 2018 | *Dec 2019* | 2.19.0 | | 18.10 Cosmic | 294| Jun 2018 | **Jun 2023** | | 3.7.0 | | 19.04 Disco - **20.04 Focal** / **Buster** |
262| Oct 2018 | | | | 18.10 Cosmic | 2.19.1 | 2.7.15 3.6.6 | 295| Aug 2018 | | | | 7.8 |
263| Dec 2018 | *Dec 2019* | **2.20.0** | | 19.04 Disco / **Buster** | 296| Sep 2018 | *Mar 2021* | 2.19.0 | | | 18.10 Cosmic |
264| Feb 2019 | *Dec 2019* | 2.21.0 | 297| Oct 2018 | | | | 7.9 | 19.04 Disco / **Buster** |
265| Apr 2019 | | | | 19.04 Disco | 2.20.1 | 2.7.16 3.7.3 | 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 |
266| Jun 2019 | | 2.22.0 | 303| Jun 2019 | | 2.22.0 |
267| Jul 2019 | **Jul 2024** | | | **Debian 10 Buster** | 2.20.1 | 2.7.16 3.7.3 | 304| Jul 2019 | **Jul 2024** | | | | **Debian 10 Buster** | 2.20.1 | 2.7.16 3.7.3 | 7.9 |
268| Aug 2019 | | 2.23.0 | 305| Aug 2019 | *Mar 2021* | 2.23.0 |
269| Oct 2019 | **Oct 2024** | | 3.8.0 | 306| Oct 2019 | **Oct 2024** | | 3.8.0 | | **20.04 Focal** - 20.10 Groovy |
270| Oct 2019 | | | | 19.10 Eoan | 2.20.1 | 2.7.17 3.7.5 | 307| Oct 2019 | | | | 8.1 |
271| Nov 2019 | | 2.24.0 | 308| Oct 2019 | | | | | 19.10 Eoan | 2.20.1 | 2.7.17 3.7.5 | 8.0 |
272| Jan 2020 | | 2.25.0 | | **20.04 Focal** | 309| Nov 2019 | *Mar 2021* | 2.24.0 |
273| Apr 2020 | **Apr 2030** | | | **20.04 Focal** | 2.25.0 | 2.7.17 3.7.5 | 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** |
274 331
275 332
276[contact]: ../README.md#contact 333[contact]: ../README.md#contact
277[rel-d]: https://en.wikipedia.org/wiki/Debian_version_history 334[rel-d]: https://en.wikipedia.org/wiki/Debian_version_history
278[rel-g]: https://en.wikipedia.org/wiki/Git#Releases 335[rel-g]: https://en.wikipedia.org/wiki/Git#Releases
336[rel-o]: https://www.openssh.com/releasenotes.html
279[rel-p]: https://en.wikipedia.org/wiki/History_of_Python#Table_of_versions 337[rel-p]: https://en.wikipedia.org/wiki/History_of_Python#Table_of_versions
280[rel-u]: https://en.wikipedia.org/wiki/Ubuntu_version_history#Table_of_versions 338[rel-u]: https://en.wikipedia.org/wiki/Ubuntu_version_history#Table_of_versions
281[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