Using tags misses all ELTS releases, which are relevant for ELTS-only release cycles.
Important changes:
- very old v3 and v4 releases completely dropped except for 3.3.0, and 3.5.0.
- We track only as far back as v7, so dropping v4 and earlier should be fine.
- 7.0.1 and 9.3.2 are missing, which is okay because both are superseded.
Fixes#92.
Recently links to web.archive.org were added for various products. Such links are very long to load. This increases the default timeout value so that such links do not make the update fail.
GraalVM for JDK versions has to be prefixed as their release cycle collide with older GraalVM release cycles.
Example: GraalVM for JDK 20 and 20.0 (will be the same with JDK 21 and 22).
The script only get versions 4.x and above, see script comments for more informations.
Note that the code related to git has been extracted to a common script so that it can be reused for the Debian script.
AWS is no longer publishing the history on GitHub, so we
instead rely on older copies of the website to track the old
release dates. This is done at 2 cutoff points right now for
1.19 and 1.20.
Older releases are available on the web archive, but those
pages didn't include release dates so not helpful.
Create a common function to write resulting JSON files to the releases directory.
It makes this task simpler to read and maintain, while making it modifiable at a central point in the future.
One example of such modification could be the sorting of the versions in a uniform way for all the scripts.
This creates a common function to fetch HTTP URLs, with enhanced capabilities (retry, use of a known User-Agent).
It makes scripts that need those capabilities simpler, while improving other scripts.
This commit also fixes some scripts that did not log properly (cos.py, eks.py, haproxy.py, palo-alto-networks.py, rhel.py, ros.py, unrealircd.py).
Generic scripts are scripts that handle multiple product based on some identifier (URL, coordinates...).
This creates a common function to list and load product configurations for those scripts.
It makes them simpler to read and maintain, while making the way they work much more consistent.
This uses the PHP releases API. Limitations:
1. New Major versions will needed to be added manually
The src for the API is at https://github.com/php/web-php/blob/master/releases/index.php
The data comes from https://github.com/php/web-php/blob/master/include/releases.inc
This commit keeps the old sort method for a cleaner diff. Next commits
in this PR will fix the sorting to be standardized.
The difference from using tags is:
1. One additional version shows up (4.0.4) which we'd missed previously
due to being tagged as php-4.0.4REL.
2. Slightly more accurate dates.
This script is using the GitHub CLI with the GraphQL API in order to retrieve releases. The reasons are:
- using 'gh release list' does not return all the releases
- using the API, directly or via GitHub CLI, is slow, produces a lot of 502 errors, and is harder due to pagination.
- using the GraphQL API directly is hard due to pagination.
- using a library, such as graphql-python, is sightly harder than using the GitHub CLI (and still requires a GITHUB_TOKEN).
Access to the GitHub token is required when using GitHub CLI, hence the update.yml workflow update.
Only 18.0.20.3 and later are picked up :
- format of the title for 18.0.20 and 18.0.19 are different,
- there is not entry for GA of versions 18.0.18 and older.
Co-authored-by: Marc Wrobel <marc.wrobel@gmail.com>
- Get cycles URL by parsing https://www.haproxy.org/download/:
- This way the script does not have to be updated each time a new minor version is released.
- The old algorithm was missing some versions (such as 1.6.x).
- Use a GitHub actions log group to wrap the script logs.
- Display version like the other scripts.