Skip to content

Instantly share code, notes, and snippets.

@Potherca
Last active December 3, 2021 16:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Potherca/4fd1231aa78f1b55401f49bff20d13e5 to your computer and use it in GitHub Desktop.
Save Potherca/4fd1231aa78f1b55401f49bff20d13e5 to your computer and use it in GitHub Desktop.
Nextcloud and PHP version compatibility

Nextcloud, PHP, and PHPUnit version compatibility

This document shows which version of Nextcloud supported which version(s) of PHP, with which version of PHPUnit.

Given that Nextcloud supports the following PHP versions:

Nextcloud EOL 7.1 7.2 7.3 7.4 8.0 8.1
23 2022-12
22 2022-07
21 2022-02
20 2021-10

And PHPUnit supports the following PHP versions:

PHPUnit EOL 7.1 7.2 7.3 7.4 8.0 8.1
v9.5 2022
v8.5 2021
v7.5 2020

Then Nextcloud version dictate these use of the following PHPUnit versions:

Nextcloud 7 8 9
23
22
21
20

✅ = supported ✔ = recommended

Current Distribution

The graphs below show the distribution of the use of Nextcloud and PHP version, respectively. (Both graphs run from July 2019 to November 2021)

Nextcloud Versions

PHP Versions

Sources

Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" font-family="Lato Light,sans-serif" font-size="12"
width="6300" height="500" viewBox="0 0 6300 500">
<rect width="6300" height="500" fill="#222f3e" rx="0" ry="0"/>
<g>
<path fill="none" d="M103 10v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391m50-391v391m49-391v391M53 10v391"/>
</g>
<g>
<path fill="none" stroke="#4b6584" d="M53 402h6237M53 324h6237M53 246h6237M53 167h6237M53 89h6237M53 10h6237"/>
</g>
<g>
<path fill="none" stroke="#4b6584" d="M53 402h6237"/>
</g>
<g>
<g clip-path="url(#highcharts-b8ni0ey-259-)" transform="translate(53 10)">
<path fill="rgba(30,144,255,0.5)" d="M25 0h6187v1H3935l-49 1h-495l-50-1-49 1h-99l-50-1-49 1h-149l-49 1-50-1-49 1-50-1-49 1h-396l-50 1-49-1h-99l-50 1-49-1h-50l-49 1h-99l-50 1-49-1-50 1h-495l-49 1h-99l-50 2-49 1-50 1-49 1-50 1-49 2c-20 1-30 3-50 3l-49 1c-20 1-30 14-50 15-20 2-29 1-49 2l-50 1h-49l-50-2c-20 0-29 4-49 4h-50c-20-1-29-3-49-3h-50l-49 2c-20 0-30-2-50-5-20-2-49-8-49-8Z"/>
<path fill="none" stroke="#1e90ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M25 0h6187"/>
<path fill="none" stroke="rgba(192,192,192,0.0001)" stroke-linecap="round" stroke-linejoin="round" stroke-width="22" d="M25 0h6187"/>
</g>
<g clip-path="url(#highcharts-b8ni0ey-259-)" transform="translate(53 10)">
<path fill="rgba(46,213,115,0.5)" d="M25 24s29 6 49 8c20 3 30 5 50 5l49-2h50c20 0 29 2 49 3h50c20 0 29-4 49-4l50 2h49l50-1c20-1 29 0 49-2 20-1 30-14 50-15l49-1c20 0 30-2 50-3l49-2 50-1 49-1 50-1 49-1 50-2h99l49-1h495l50-1 49 1 50-1h99l49-1h50l49 1 50-1h99l49 1 50-1h396l49-1 50 1 49-1 50 1 49-1h149l49-1 50 1h99l49-1 50 1h495l49-1h2277l-49 1h-99l-50-1h-49l-50 1h-693a8662 8662 0 0 1-99 1l-49-1-50 1h-346l-50 1-49-1-50 1-49-1-50 1h-49l-50-1-49 1h-347l-49 1h-149l-49 1-50-1-49 1h-50l-49-1-50 2h-49l-50-1-49 1h-50l-49-1h-50l-49 1-50 1h-49l-50 1h-99l-49 1h-99l-50 1-49 1h-99l-50 2h-49l-50 1-49 1-50 2-49-2c-20 0-30 2-50 3l-49 1h-99l-50 1-49 3-50 3c-20 1-29 4-49 4h-50l-49 2c-20 1-30 0-50 4-20 3-29 20-49 20h-50c-20 0-29 3-49 5l-50 6c-20 1-29 0-49 3-20 2-30 6-50 8s-29 1-49 2l-50 4c-20 1-29 1-49 4-20 2-30 5-50 10s-29 8-49 15l-50 17c-20 6-29 4-49 11-20 8-30 7-50 26s-29 49-49 70-30 25-50 35c-20 9-29 8-49 12l-50 10c-20 4-29 4-49 10-20 7-30 12-50 23s-29 20-49 31-30 18-50 22c-20 5-29 5-49 5l-50-1-49 1-50 3h-49l-50 2H25Z"/>
<path fill="none" stroke="#2ed573" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M25 24s29 6 49 8c20 3 30 5 50 5l49-2h50c20 0 29 2 49 3h50c20 0 29-4 49-4l50 2h49l50-1c20-1 29 0 49-2 20-1 30-14 50-15l49-1c20 0 30-2 50-3l49-2 50-1 49-1 50-1 49-1 50-2h99l49-1h495l50-1 49 1 50-1h99l49-1h50l49 1 50-1h99l49 1 50-1h396l49-1 50 1 49-1 50 1 49-1h149l49-1 50 1h99l49-1 50 1h495l49-1h2277"/>
<path fill="none" stroke="rgba(192,192,192,0.0001)" stroke-linecap="round" stroke-linejoin="round" stroke-width="22" d="M25 24s29 6 49 8c20 3 30 5 50 5l49-2h50c20 0 29 2 49 3h50c20 0 29-4 49-4l50 2h49l50-1c20-1 29 0 49-2 20-1 30-14 50-15l49-1c20 0 30-2 50-3l49-2 50-1 49-1 50-1 49-1 50-2h99l49-1h495l50-1 49 1 50-1h99l49-1h50l49 1 50-1h99l49 1 50-1h396l49-1 50 1 49-1 50 1 49-1h149l49-1 50 1h99l49-1 50 1h495l49-1h2277"/>
</g>
<g clip-path="url(#highcharts-b8ni0ey-259-)" transform="translate(53 10)">
<path fill="rgba(255,71,87,0.5)" d="M25 391h247l50-2h49l50-3 49-1 50 1c20 0 29 0 49-5 20-4 30-11 50-22s29-20 49-31 30-16 50-23c20-6 29-6 49-10l50-10c20-4 29-3 49-12 20-10 30-14 50-35s29-51 49-70 30-18 50-26c20-7 29-5 49-11l50-17a391 391 0 0 1 99-25c20-3 29-3 49-4l50-4c20-1 29 0 49-2s30-6 50-8c20-3 29-2 49-3l50-6c20-2 29-5 49-5h50c20 0 29-17 49-20 20-4 30-3 50-4l49-2h50c20 0 29-3 49-4l50-3 49-3 50-1h99l49-1c20-1 30-3 50-3l49 2 50-2 49-1 50-1h49l50-2h99l49-1 50-1h99l49-1h99l50-1h49l50-1 49-1h50l49 1h50l49-1 50 1h49l50-2 49 1h50l49-1 50 1 49-1h149l49-1h347l49-1 50 1h49l50-1 49 1 50-1 49 1 50-1h346l50-1 49 1a8612 8612 0 0 0 99-1h693l50-1h49l50 1h99l49-1v1l-49 1h-99l-50-1-49 1h-297l-50 1h-198l-49 1-50-1h-49l-50 1h-49l-50 1-49-1-50 1h-346l-50 1-49-1-50 1h-198l-49 1h-149l-49 1h-149l-49 1-50 1h-49l-50-1-49 1h-50l-49 1-50 1h-49l-50 1-49 2h-50l-49 2-50-1-49-1-50 2-49 1-50 2h-49l-50 2-49 1h-50l-49 3h-99l-50 2-49 1-50 2h-49l-50 4h-49c-20 0-30 3-50 3l-49 1c-20 1-30 4-50 4l-49-2c-20 0-30 5-50 6-20 2-29 0-49 3-20 2-30 11-50 15-20 5-29 5-49 8l-50 6c-20 2-29 3-49 7l-50 12c-20 5-29 6-49 13s-30 9-50 22-29 21-49 43-30 48-50 70c-20 21-29 28-49 37-20 10-30 8-50 12s-29 3-49 8c-20 6-30 11-50 19-20 9-29 11-49 22-20 12-30 32-50 36-20 5-29 5-49 5l-50 1h-49l-50 1-49 1-50 1-49 1H25Z"/>
<path fill="none" stroke="#ff4757" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m272 391 50-2h49l50-3 49-1 50 1c20 0 29 0 49-5 20-4 30-11 50-22s29-20 49-31 30-16 50-23c20-6 29-6 49-10l50-10c20-4 29-3 49-12 20-10 30-14 50-35s29-51 49-70 30-18 50-26c20-7 29-5 49-11l50-17a391 391 0 0 1 99-25c20-3 29-3 49-4l50-4c20-1 29 0 49-2s30-6 50-8c20-3 29-2 49-3l50-6c20-2 29-5 49-5h50c20 0 29-17 49-20 20-4 30-3 50-4l49-2h50c20 0 29-3 49-4l50-3 49-3 50-1h99l49-1c20-1 30-3 50-3l49 2 50-2 49-1 50-1h49l50-2h99l49-1 50-1h99l49-1h99l50-1h49l50-1 49-1h50l49 1h50l49-1 50 1h49l50-2 49 1h50l49-1 50 1 49-1h149l49-1h347l49-1 50 1h49l50-1 49 1 50-1 49 1 50-1h346l50-1 49 1a8612 8612 0 0 0 99-1h693l50-1h49l50 1h99l49-1"/>
<path fill="none" stroke="rgba(192,192,192,0.0001)" stroke-linecap="round" stroke-linejoin="round" stroke-width="22" d="m272 391 50-2h49l50-3 49-1 50 1c20 0 29 0 49-5 20-4 30-11 50-22s29-20 49-31 30-16 50-23c20-6 29-6 49-10l50-10c20-4 29-3 49-12 20-10 30-14 50-35s29-51 49-70 30-18 50-26c20-7 29-5 49-11l50-17a391 391 0 0 1 99-25c20-3 29-3 49-4l50-4c20-1 29 0 49-2s30-6 50-8c20-3 29-2 49-3l50-6c20-2 29-5 49-5h50c20 0 29-17 49-20 20-4 30-3 50-4l49-2h50c20 0 29-3 49-4l50-3 49-3 50-1h99l49-1c20-1 30-3 50-3l49 2 50-2 49-1 50-1h49l50-2h99l49-1 50-1h99l49-1h99l50-1h49l50-1 49-1h50l49 1h50l49-1 50 1h49l50-2 49 1h50l49-1 50 1 49-1h149l49-1h347l49-1 50 1h49l50-1 49 1 50-1 49 1 50-1h346l50-1 49 1a8612 8612 0 0 0 99-1h693l50-1h49l50 1h99l49-1"/>
</g>
<g clip-path="url(#highcharts-b8ni0ey-259-)" transform="translate(53 10)">
<path fill="rgba(255,165,2,0.5)" d="M25 391h990l49-1 50-1 49-1 50-1h49l50-1c20 0 29 0 49-5 20-4 30-24 50-36 20-11 29-13 49-22 20-8 30-13 50-19 20-5 29-4 49-8s30-2 50-12c20-9 29-16 49-37 20-22 30-48 50-70s29-30 49-43 30-15 50-22 29-8 49-13l50-12c20-4 29-5 49-7l50-6c20-3 29-3 49-8 20-4 30-13 50-15 20-3 29-1 49-3 20-1 30-6 50-6l49 2c20 0 30-3 50-4l49-1c20 0 30-3 50-3h49l50-4h49l50-2 49-1 50-2h99l49-3h50l49-1 50-2h49l50-2 49-1 50-2 49 1 50 1 49-2h50l49-2 50-1h49l50-1 49-1h50l49-1 50 1h49l50-1 49-1h149l49-1h149l49-1h198l50-1 49 1 50-1h346l50-1 49 1 50-1h49l50-1h49l50 1 49-1h198l50-1h297l49-1 50 1h99l49-1v3l-49 1h-198l-50 1h-198l-49 1h-50l-49 1-50-1-49 1h-50l-49 1-50 1-49-1-50 1h-49l-50 1-49-1-50 1h-198l-49 2h-99c-20 1-30 3-50 3l-49-2-50 1h-49l-50 2-49-1h-50c-20 0-29 2-49 3h-50l-49 3h-50l-49 1-50 2c-20 1-29 3-49 3l-50 1-49 1-50 3-49 1-50 2-49 1-50 4h-49c-20 1-30 4-50 7l-49 5-50 5-49 6-50 6-49 7c-20 2-30 5-50 5s-29-3-49-3-30 19-50 26-29 4-49 8l-50 13c-20 6-29 3-49 16-20 12-30 30-50 47a402 402 0 0 1-99 64c-20 7-29 4-49 8l-50 12-49 8-50 7-49 6c-20 2-30 0-50 4s-29 14-49 20c-20 7-30 6-50 12s-29 8-49 18c-20 11-30 32-50 34s-29 2-49 2h-50l-49 1-50 1-49 1h-99l-50 3H25Z"/>
<path fill="none" stroke="#ffa502" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1015 391 49-1 50-1 49-1 50-1h49l50-1c20 0 29 0 49-5 20-4 30-24 50-36 20-11 29-13 49-22 20-8 30-13 50-19 20-5 29-4 49-8s30-2 50-12c20-9 29-16 49-37 20-22 30-48 50-70s29-30 49-43 30-15 50-22 29-8 49-13l50-12c20-4 29-5 49-7l50-6c20-3 29-3 49-8 20-4 30-13 50-15 20-3 29-1 49-3 20-1 30-6 50-6l49 2c20 0 30-3 50-4l49-1c20 0 30-3 50-3h49l50-4h49l50-2 49-1 50-2h99l49-3h50l49-1 50-2h49l50-2 49-1 50-2 49 1 50 1 49-2h50l49-2 50-1h49l50-1 49-1h50l49-1 50 1h49l50-1 49-1h149l49-1h149l49-1h198l50-1 49 1 50-1h346l50-1 49 1 50-1h49l50-1h49l50 1 49-1h198l50-1h297l49-1 50 1h99l49-1"/>
<path fill="none" stroke="rgba(192,192,192,0.0001)" stroke-linecap="round" stroke-linejoin="round" stroke-width="22" d="m1015 391 49-1 50-1 49-1 50-1h49l50-1c20 0 29 0 49-5 20-4 30-24 50-36 20-11 29-13 49-22 20-8 30-13 50-19 20-5 29-4 49-8s30-2 50-12c20-9 29-16 49-37 20-22 30-48 50-70s29-30 49-43 30-15 50-22 29-8 49-13l50-12c20-4 29-5 49-7l50-6c20-3 29-3 49-8 20-4 30-13 50-15 20-3 29-1 49-3 20-1 30-6 50-6l49 2c20 0 30-3 50-4l49-1c20 0 30-3 50-3h49l50-4h49l50-2 49-1 50-2h99l49-3h50l49-1 50-2h49l50-2 49-1 50-2 49 1 50 1 49-2h50l49-2 50-1h49l50-1 49-1h50l49-1 50 1h49l50-1 49-1h149l49-1h149l49-1h198l50-1 49 1 50-1h346l50-1 49 1 50-1h49l50-1h49l50 1 49-1h198l50-1h297l49-1 50 1h99l49-1"/>
</g>
<g clip-path="url(#highcharts-b8ni0ey-259-)" transform="translate(53 10)">
<path fill="rgba(83,82,237,0.5)" d="M25 391h1930l50-3h99l49-1 50-1 49-1h50c20 0 29 0 49-2s30-23 50-34c20-10 29-12 49-18s30-5 50-12c20-6 29-16 49-20s30-2 50-4l49-6 50-7 49-8 50-12c20-4 29-1 49-8s30-13 50-26 29-22 49-38c20-17 30-35 50-47 20-13 29-10 49-16l50-13c20-4 29-1 49-8s30-26 50-26 29 3 49 3 30-3 50-5l49-7 50-6 49-6 50-5 49-5c20-3 30-6 50-7h49l50-4 49-1 50-2 49-1 50-3 49-1 50-1c20 0 29-2 49-3l50-2 49-1h50l49-3h50c20-1 29-3 49-3h50l49 1 50-2h49l50-1 49 2c20 0 30-2 50-3h99l49-2h198l50-1 49 1 50-1h49l50-1 49 1 50-1 49-1h50l49-1 50 1 49-1h50l49-1h198l50-1h198l49-1v6l-49 1h-50l-49 1-50-1-49 1-50 1-49 1h-50l-49 1-50 1-49 1-50-1-49 2h-50l-49 1-50 1c-20 0-29 2-49 3l-50 1h-49l-50 1-49 1-50 1-49 1h-50l-49 2a2531 2531 0 0 1-99 1l-50-1c-20 0-29 3-49 3l-50 1-49 1-50 2h-49l-50 2-49 2-50 1-49 1-50 3-49 6-50 4-49 3-50 3-49 9-50 8-49 8-50 8c-20 3-29 3-49 7l-50 10c-20 4-29 1-49 11s-30 26-50 39-29 19-49 26c-20 8-30 5-50 13s-29 18-49 28-30 15-50 22-29 8-49 12-30 2-50 9-29 15-49 25c-20 11-30 21-50 29s-29 3-49 12c-20 8-30 21-50 31s-29 15-49 17-30 2-50 2h-148l-50 1-49 1H25Z"/>
<path fill="none" stroke="#5352ed" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1906 391h49l50-3h99l49-1 50-1 49-1h50c20 0 29 0 49-2s30-23 50-34c20-10 29-12 49-18s30-5 50-12c20-6 29-16 49-20s30-2 50-4l49-6 50-7 49-8 50-12c20-4 29-1 49-8s30-13 50-26 29-22 49-38c20-17 30-35 50-47 20-13 29-10 49-16l50-13c20-4 29-1 49-8s30-26 50-26 29 3 49 3 30-3 50-5l49-7 50-6 49-6 50-5 49-5c20-3 30-6 50-7h49l50-4 49-1 50-2 49-1 50-3 49-1 50-1c20 0 29-2 49-3l50-2 49-1h50l49-3h50c20-1 29-3 49-3h50l49 1 50-2h49l50-1 49 2c20 0 30-2 50-3h99l49-2h198l50-1 49 1 50-1h49l50-1 49 1 50-1 49-1h50l49-1 50 1 49-1h50l49-1h198l50-1h198l49-1"/>
<path fill="none" stroke="rgba(192,192,192,0.0001)" stroke-linecap="round" stroke-linejoin="round" stroke-width="22" d="M1906 391h49l50-3h99l49-1 50-1 49-1h50c20 0 29 0 49-2s30-23 50-34c20-10 29-12 49-18s30-5 50-12c20-6 29-16 49-20s30-2 50-4l49-6 50-7 49-8 50-12c20-4 29-1 49-8s30-13 50-26 29-22 49-38c20-17 30-35 50-47 20-13 29-10 49-16l50-13c20-4 29-1 49-8s30-26 50-26 29 3 49 3 30-3 50-5l49-7 50-6 49-6 50-5 49-5c20-3 30-6 50-7h49l50-4 49-1 50-2 49-1 50-3 49-1 50-1c20 0 29-2 49-3l50-2 49-1h50l49-3h50c20-1 29-3 49-3h50l49 1 50-2h49l50-1 49 2c20 0 30-2 50-3h99l49-2h198l50-1 49 1 50-1h49l50-1 49 1 50-1 49-1h50l49-1 50 1 49-1h50l49-1h198l50-1h198l49-1"/>
</g>
<g clip-path="url(#highcharts-b8ni0ey-259-)" transform="translate(53 10)">
<path fill="rgba(30,55,153,0.5)" d="M25 391h2871l49-1 50-1h148c20 0 30 0 50-2s29-7 49-17 30-23 50-31c20-9 29-4 49-12s30-18 50-29c20-10 29-18 49-25s30-5 50-9 29-5 49-12 30-12 50-22 29-20 49-28 30-5 50-13c20-7 29-13 49-26s30-29 50-39 29-7 49-11l50-10c20-4 29-4 49-7l50-8 49-8 50-8 49-9 50-3 49-3 50-4 49-6 50-3 49-1 50-1 49-2 50-2h49l50-2 49-1 50-1c20 0 29-3 49-3l50 1a2759 2759 0 0 0 99-1l49-2h50l49-1 50-1 49-1 50-1h49l50-1c20-1 29-3 49-3l50-1 49-1h50l49-2 50 1 49-1 50-1 49-1h50l49-1 50-1 49-1 50 1 49-1h50l49-1v40l-49 3-50 2-49 4-50 1h-49c-20 0-30 3-50 4l-49 1c-20 0-30 1-50 3-20 1-29 3-49 5l-50 4c-20 2-29 6-49 6l-50 1c-20 1-29 4-49 6s-30 1-50 2l-49 5-50 5-49 8-50 12-49 10-50 8c-20 4-29 8-49 11l-50 6c-20 2-29 4-49 5-20 2-30 1-50 2l-49 2c-20 1-30 4-50 4l-49 1c-20 0-30 23-50 27-20 5-29 3-49 5l-50 7-49 4c-20 2-30 3-50 8s-29 1-49 17c-20 17-30 63-50 65s-29 0-49 2l-50 6-49 7c-20 2-30 3-50 7-20 5-29 8-49 17-20 8-30 18-50 26-20 9-29 14-49 16l-50 1h-49l-50-1-49 1-50 1h-49l-50 1h-49l-50 1-49 1H25Z"/>
<path fill="none" stroke="#1e3799" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2203 391h693l49-1 50-1h148c20 0 30 0 50-2s29-7 49-17 30-23 50-31c20-9 29-4 49-12s30-18 50-29c20-10 29-18 49-25s30-5 50-9 29-5 49-12 30-12 50-22 29-20 49-28 30-5 50-13c20-7 29-13 49-26s30-29 50-39 29-7 49-11l50-10c20-4 29-4 49-7l50-8 49-8 50-8 49-9 50-3 49-3 50-4 49-6 50-3 49-1 50-1 49-2 50-2h49l50-2 49-1 50-1c20 0 29-3 49-3l50 1a2759 2759 0 0 0 99-1l49-2h50l49-1 50-1 49-1 50-1h49l50-1c20-1 29-3 49-3l50-1 49-1h50l49-2 50 1 49-1 50-1 49-1h50l49-1 50-1 49-1 50 1 49-1h50l49-1"/>
<path fill="none" stroke="rgba(192,192,192,0.0001)" stroke-linecap="round" stroke-linejoin="round" stroke-width="22" d="M2203 391h693l49-1 50-1h148c20 0 30 0 50-2s29-7 49-17 30-23 50-31c20-9 29-4 49-12s30-18 50-29c20-10 29-18 49-25s30-5 50-9 29-5 49-12 30-12 50-22 29-20 49-28 30-5 50-13c20-7 29-13 49-26s30-29 50-39 29-7 49-11l50-10c20-4 29-4 49-7l50-8 49-8 50-8 49-9 50-3 49-3 50-4 49-6 50-3 49-1 50-1 49-2 50-2h49l50-2 49-1 50-1c20 0 29-3 49-3l50 1a2759 2759 0 0 0 99-1l49-2h50l49-1 50-1 49-1 50-1h49l50-1c20-1 29-3 49-3l50-1 49-1h50l49-2 50 1 49-1 50-1 49-1h50l49-1 50-1 49-1 50 1 49-1h50l49-1"/>
</g>
<g clip-path="url(#highcharts-b8ni0ey-259-)" transform="translate(53 10)">
<path fill="rgba(7,153,146,0.5)" d="M25 391h3663l49-1 50-1h49l50-1h49l50-1 49-1 50 1h49l50-1c20-2 29-7 49-16 20-8 30-18 50-26 20-9 29-12 49-17 20-4 30-5 50-7l49-7 50-6c20-2 29 0 49-2s30-48 50-65c20-16 29-12 49-17s30-6 50-8l49-4 50-7c20-2 29 0 49-5 20-4 30-27 50-27l49-1c20 0 30-3 50-4l49-2c20-1 30 0 50-2 20-1 29-3 49-5l50-6c20-3 29-7 49-11l50-8 49-10 50-12 49-8 50-5 49-5c20-1 30 0 50-2s29-5 49-6l50-1c20 0 29-4 49-6l50-4c20-2 29-4 49-5 20-2 30-3 50-3l49-1c20-1 30-4 50-4h49l50-1 49-4 50-2 49-3v66l-49 8-50 11-49 11-50 9c-20 4-29 4-49 11s-30 14-50 25c-20 10-29 20-49 29s-30 11-50 17-29 6-49 14-30 18-50 26-29 5-49 13-30 21-50 27-29 4-49 6l-50 4-49 7-50 4-49 7-50 5-49 9c-20 4-30 2-50 7-20 6-29 16-49 19-20 4-30 4-50 4h-99l-49 1H25Z"/>
<path fill="none" stroke="#079992" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3341 391h347l49-1 50-1h49l50-1h49l50-1 49-1 50 1h49l50-1c20-2 29-7 49-16 20-8 30-18 50-26 20-9 29-12 49-17 20-4 30-5 50-7l49-7 50-6c20-2 29 0 49-2s30-48 50-65c20-16 29-12 49-17s30-6 50-8l49-4 50-7c20-2 29 0 49-5 20-4 30-27 50-27l49-1c20 0 30-3 50-4l49-2c20-1 30 0 50-2 20-1 29-3 49-5l50-6c20-3 29-7 49-11l50-8 49-10 50-12 49-8 50-5 49-5c20-1 30 0 50-2s29-5 49-6l50-1c20 0 29-4 49-6l50-4c20-2 29-4 49-5 20-2 30-3 50-3l49-1c20-1 30-4 50-4h49l50-1 49-4 50-2 49-3"/>
<path fill="none" stroke="rgba(192,192,192,0.0001)" stroke-linecap="round" stroke-linejoin="round" stroke-width="22" d="M3341 391h347l49-1 50-1h49l50-1h49l50-1 49-1 50 1h49l50-1c20-2 29-7 49-16 20-8 30-18 50-26 20-9 29-12 49-17 20-4 30-5 50-7l49-7 50-6c20-2 29 0 49-2s30-48 50-65c20-16 29-12 49-17s30-6 50-8l49-4 50-7c20-2 29 0 49-5 20-4 30-27 50-27l49-1c20 0 30-3 50-4l49-2c20-1 30 0 50-2 20-1 29-3 49-5l50-6c20-3 29-7 49-11l50-8 49-10 50-12 49-8 50-5 49-5c20-1 30 0 50-2s29-5 49-6l50-1c20 0 29-4 49-6l50-4c20-2 29-4 49-5 20-2 30-3 50-3l49-1c20-1 30-4 50-4h49l50-1 49-4 50-2 49-3"/>
</g>
<g clip-path="url(#highcharts-b8ni0ey-259-)" transform="translate(53 10)">
<path fill="rgba(229,80,57,0.5)" d="M25 391h4950l49-1h99c20 0 30 0 50-4 20-3 29-13 49-19 20-5 30-3 50-7l49-9 50-5 49-7 50-4 49-7 50-4c20-2 29 0 49-6s30-19 50-27 29-5 49-13 30-18 50-26 29-8 49-14 30-8 50-17 29-19 49-29c20-11 30-18 50-25s29-7 49-11l50-9 49-11 50-11 49-8v270s-29 3-49 3h-50l-49 1H25Z"/>
<path fill="none" stroke="#e55039" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4133 391h396m198 0h99m149 0 49-1h99c20 0 30 0 50-4 20-3 29-13 49-19 20-5 30-3 50-7l49-9 50-5 49-7 50-4 49-7 50-4c20-2 29 0 49-6s30-19 50-27 29-5 49-13 30-18 50-26 29-8 49-14 30-8 50-17 29-19 49-29c20-11 30-18 50-25s29-7 49-11l50-9 49-11 50-11 49-8"/>
<path fill="none" stroke="rgba(192,192,192,0.0001)" stroke-linecap="round" stroke-linejoin="round" stroke-width="22" d="M4133 391h396m198 0h99m149 0 49-1h99c20 0 30 0 50-4 20-3 29-13 49-19 20-5 30-3 50-7l49-9 50-5 49-7 50-4 49-7 50-4c20-2 29 0 49-6s30-19 50-27 29-5 49-13 30-18 50-26 29-8 49-14 30-8 50-17 29-19 49-29c20-11 30-18 50-25s29-7 49-11l50-9 49-11 50-11 49-8"/>
</g>
<g clip-path="url(#highcharts-b8ni0ey-259-)" transform="translate(53 10)">
<path fill="rgba(246,185,59,0.5)" d="M25 391h6039l49-1h50c20 0 49-3 49-3v4H25Z"/>
<path fill="none" stroke="#f6b93b" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6014 391h50l49-1h50c20 0 49-3 49-3"/>
<path fill="none" stroke="rgba(192,192,192,0.0001)" stroke-linecap="round" stroke-linejoin="round" stroke-width="22" d="M6014 391h50l49-1h50c20 0 49-3 49-3"/>
</g>
</g>
<g>
<text y="12" fill="#fff" color="#fff" font-weight="700" transform="translate(338 23)">Nextcloud 15</text>
</g>
<g>
<text y="12" fill="#fff" color="#fff" font-weight="700" transform="translate(78 215)">Nextcloud 16</text>
</g>
<g>
<text y="12" fill="#fff" color="#fff" font-weight="700" transform="translate(1316 238)">Nextcloud 17</text>
</g>
<g>
<text y="12" fill="#fff" color="#fff" font-weight="700" transform="translate(2232 218)">Nextcloud 18</text>
</g>
<g>
<text y="12" fill="#fff" color="#fff" font-weight="700" transform="translate(3160 251)">Nextcloud 19</text>
</g>
<g>
<text y="12" fill="#fff" color="#fff" font-weight="700" transform="translate(4175 228)">Nextcloud 20</text>
</g>
<g>
<text y="12" fill="#fff" color="#fff" font-weight="700" transform="translate(5474 222)">Nextcloud 21</text>
</g>
<g>
<text y="12" fill="#fff" color="#fff" font-weight="700" transform="translate(6192 260)">Nextcloud 22</text>
</g>
<g fill="#c8d6e5" color="#c8d6e5" cursor="default" font-size="11" text-anchor="end">
<text x="80" y="417" transform="rotate(-45 80 417)">2019-28</text>
<text x="130" y="417" transform="rotate(-45 130 417)">2019-29</text>
<text x="179" y="417" transform="rotate(-45 179 417)">2019-30</text>
<text x="229" y="417" transform="rotate(-45 229 417)">2019-31</text>
<text x="278" y="417" transform="rotate(-45 278 417)">2019-32</text>
<text x="328" y="417" transform="rotate(-45 328 417)">2019-33</text>
<text x="377" y="417" transform="rotate(-45 377 417)">2019-34</text>
<text x="427" y="417" transform="rotate(-45 427 417)">2019-35</text>
<text x="476" y="417" transform="rotate(-45 476 417)">2019-36</text>
<text x="526" y="417" transform="rotate(-45 526 417)">2019-37</text>
<text x="575" y="417" transform="rotate(-45 575 417)">2019-38</text>
<text x="625" y="417" transform="rotate(-45 625 417)">2019-39</text>
<text x="674" y="417" transform="rotate(-45 674 417)">2019-40</text>
<text x="724" y="417" transform="rotate(-45 724 417)">2019-41</text>
<text x="773" y="417" transform="rotate(-45 773 417)">2019-42</text>
<text x="823" y="417" transform="rotate(-45 823 417)">2019-43</text>
<text x="872" y="417" transform="rotate(-45 872 417)">2019-44</text>
<text x="922" y="417" transform="rotate(-45 922 417)">2019-45</text>
<text x="971" y="417" transform="rotate(-45 971 417)">2019-46</text>
<text x="1021" y="417" transform="rotate(-45 1021 417)">2019-47</text>
<text x="1070" y="417" transform="rotate(-45 1070 417)">2019-48</text>
<text x="1120" y="417" transform="rotate(-45 1120 417)">2019-49</text>
<text x="1169" y="417" transform="rotate(-45 1169 417)">2019-50</text>
<text x="1219" y="417" transform="rotate(-45 1219 417)">2019-51</text>
<text x="1268" y="417" transform="rotate(-45 1268 417)">2019-52</text>
<text x="1318" y="417" transform="rotate(-45 1318 417)">2020-1</text>
<text x="1367" y="417" transform="rotate(-45 1367 417)">2020-2</text>
<text x="1417" y="417" transform="rotate(-45 1417 417)">2020-3</text>
<text x="1466" y="417" transform="rotate(-45 1466 417)">2020-4</text>
<text x="1516" y="417" transform="rotate(-45 1516 417)">2020-5</text>
<text x="1565" y="417" transform="rotate(-45 1565 417)">2020-6</text>
<text x="1615" y="417" transform="rotate(-45 1615 417)">2020-7</text>
<text x="1664" y="417" transform="rotate(-45 1664 417)">2020-8</text>
<text x="1714" y="417" transform="rotate(-45 1714 417)">2020-9</text>
<text x="1763" y="417" transform="rotate(-45 1763 417)">2020-10</text>
<text x="1813" y="417" transform="rotate(-45 1813 417)">2020-11</text>
<text x="1862" y="417" transform="rotate(-45 1862 417)">2020-12</text>
<text x="1912" y="417" transform="rotate(-45 1912 417)">2020-13</text>
<text x="1961" y="417" transform="rotate(-45 1961 417)">2020-14</text>
<text x="2011" y="417" transform="rotate(-45 2011 417)">2020-15</text>
<text x="2060" y="417" transform="rotate(-45 2060 417)">2020-16</text>
<text x="2110" y="417" transform="rotate(-45 2110 417)">2020-17</text>
<text x="2159" y="417" transform="rotate(-45 2159 417)">2020-18</text>
<text x="2209" y="417" transform="rotate(-45 2209 417)">2020-19</text>
<text x="2258" y="417" transform="rotate(-45 2258 417)">2020-20</text>
<text x="2308" y="417" transform="rotate(-45 2308 417)">2020-21</text>
<text x="2357" y="417" transform="rotate(-45 2357 417)">2020-22</text>
<text x="2407" y="417" transform="rotate(-45 2407 417)">2020-23</text>
<text x="2456" y="417" transform="rotate(-45 2456 417)">2020-24</text>
<text x="2506" y="417" transform="rotate(-45 2506 417)">2020-25</text>
<text x="2555" y="417" transform="rotate(-45 2555 417)">2020-26</text>
<text x="2605" y="417" transform="rotate(-45 2605 417)">2020-27</text>
<text x="2654" y="417" transform="rotate(-45 2654 417)">2020-28</text>
<text x="2704" y="417" transform="rotate(-45 2704 417)">2020-29</text>
<text x="2753" y="417" transform="rotate(-45 2753 417)">2020-30</text>
<text x="2803" y="417" transform="rotate(-45 2803 417)">2020-31</text>
<text x="2852" y="417" transform="rotate(-45 2852 417)">2020-32</text>
<text x="2902" y="417" transform="rotate(-45 2902 417)">2020-33</text>
<text x="2951" y="417" transform="rotate(-45 2951 417)">2020-34</text>
<text x="3001" y="417" transform="rotate(-45 3001 417)">2020-35</text>
<text x="3050" y="417" transform="rotate(-45 3050 417)">2020-36</text>
<text x="3100" y="417" transform="rotate(-45 3100 417)">2020-37</text>
<text x="3149" y="417" transform="rotate(-45 3149 417)">2020-38</text>
<text x="3199" y="417" transform="rotate(-45 3199 417)">2020-39</text>
<text x="3248" y="417" transform="rotate(-45 3248 417)">2020-40</text>
<text x="3298" y="417" transform="rotate(-45 3298 417)">2020-41</text>
<text x="3347" y="417" transform="rotate(-45 3347 417)">2020-42</text>
<text x="3397" y="417" transform="rotate(-45 3397 417)">2020-43</text>
<text x="3446" y="417" transform="rotate(-45 3446 417)">2020-44</text>
<text x="3496" y="417" transform="rotate(-45 3496 417)">2020-45</text>
<text x="3545" y="417" transform="rotate(-45 3545 417)">2020-46</text>
<text x="3595" y="417" transform="rotate(-45 3595 417)">2020-47</text>
<text x="3644" y="417" transform="rotate(-45 3644 417)">2020-48</text>
<text x="3694" y="417" transform="rotate(-45 3694 417)">2020-49</text>
<text x="3743" y="417" transform="rotate(-45 3743 417)">2020-50</text>
<text x="3793" y="417" transform="rotate(-45 3793 417)">2020-51</text>
<text x="3842" y="417" transform="rotate(-45 3842 417)">2020-52</text>
<text x="3892" y="417" transform="rotate(-45 3892 417)">2020-53</text>
<text x="3941" y="417" transform="rotate(-45 3941 417)">2021-1</text>
<text x="3991" y="417" transform="rotate(-45 3991 417)">2021-2</text>
<text x="4040" y="417" transform="rotate(-45 4040 417)">2021-3</text>
<text x="4090" y="417" transform="rotate(-45 4090 417)">2021-4</text>
<text x="4139" y="417" transform="rotate(-45 4139 417)">2021-5</text>
<text x="4189" y="417" transform="rotate(-45 4189 417)">2021-6</text>
<text x="4238" y="417" transform="rotate(-45 4238 417)">2021-7</text>
<text x="4288" y="417" transform="rotate(-45 4288 417)">2021-8</text>
<text x="4337" y="417" transform="rotate(-45 4337 417)">2021-9</text>
<text x="4387" y="417" transform="rotate(-45 4387 417)">2021-10</text>
<text x="4436" y="417" transform="rotate(-45 4436 417)">2021-11</text>
<text x="4486" y="417" transform="rotate(-45 4486 417)">2021-12</text>
<text x="4535" y="417" transform="rotate(-45 4535 417)">2021-13</text>
<text x="4585" y="417" transform="rotate(-45 4585 417)">2021-14</text>
<text x="4634" y="417" transform="rotate(-45 4634 417)">2021-15</text>
<text x="4684" y="417" transform="rotate(-45 4684 417)">2021-16</text>
<text x="4733" y="417" transform="rotate(-45 4733 417)">2021-17</text>
<text x="4783" y="417" transform="rotate(-45 4783 417)">2021-18</text>
<text x="4832" y="417" transform="rotate(-45 4832 417)">2021-19</text>
<text x="4882" y="417" transform="rotate(-45 4882 417)">2021-20</text>
<text x="4931" y="417" transform="rotate(-45 4931 417)">2021-21</text>
<text x="4981" y="417" transform="rotate(-45 4981 417)">2021-22</text>
<text x="5030" y="417" transform="rotate(-45 5030 417)">2021-23</text>
<text x="5080" y="417" transform="rotate(-45 5080 417)">2021-24</text>
<text x="5129" y="417" transform="rotate(-45 5129 417)">2021-25</text>
<text x="5179" y="417" transform="rotate(-45 5179 417)">2021-26</text>
<text x="5228" y="417" transform="rotate(-45 5228 417)">2021-27</text>
<text x="5278" y="417" transform="rotate(-45 5278 417)">2021-28</text>
<text x="5327" y="417" transform="rotate(-45 5327 417)">2021-29</text>
<text x="5377" y="417" transform="rotate(-45 5377 417)">2021-30</text>
<text x="5426" y="417" transform="rotate(-45 5426 417)">2021-31</text>
<text x="5476" y="417" transform="rotate(-45 5476 417)">2021-32</text>
<text x="5525" y="417" transform="rotate(-45 5525 417)">2021-33</text>
<text x="5575" y="417" transform="rotate(-45 5575 417)">2021-34</text>
<text x="5624" y="417" transform="rotate(-45 5624 417)">2021-35</text>
<text x="5674" y="417" transform="rotate(-45 5674 417)">2021-36</text>
<text x="5723" y="417" transform="rotate(-45 5723 417)">2021-37</text>
<text x="5773" y="417" transform="rotate(-45 5773 417)">2021-38</text>
<text x="5822" y="417" transform="rotate(-45 5822 417)">2021-39</text>
<text x="5872" y="417" transform="rotate(-45 5872 417)">2021-40</text>
<text x="5921" y="417" transform="rotate(-45 5921 417)">2021-41</text>
<text x="5971" y="417" transform="rotate(-45 5971 417)">2021-42</text>
<text x="6020" y="417" transform="rotate(-45 6020 417)">2021-43</text>
<text x="6070" y="417" transform="rotate(-45 6070 417)">2021-44</text>
<text x="6119" y="417" transform="rotate(-45 6119 417)">2021-45</text>
<text x="6169" y="417" transform="rotate(-45 6169 417)">2021-46</text>
<text x="6218" y="417" transform="rotate(-45 6218 417)">2021-47</text>
<text x="6268" y="417" transform="rotate(-45 6268 417)">2021-48</text>
</g>
</svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment