Commit Graph

249 Commits

Author SHA1 Message Date
Marc Wrobel
2704265b91 [chef-infra-client] Add automation script (#358) 2024-07-20 09:53:29 +02:00
Marc Wrobel
0ade677365 Do not fail in update.py if a product cannot be loaded (#357)
Such errors prevent the script to run.
2024-07-19 22:58:10 +02:00
Nemo
17a5b34816 [libreoffice] Add automation (#354) 2024-06-23 13:01:20 +02:00
Marc Wrobel
08d4ea469e Do not use wait_until='networkidle' by default with fetch_javascript_url (#340)
It does not work in all situation, especially with GitHub-rendered markdown files.
2024-04-02 23:17:51 +02:00
Marc Wrobel
812565e977 Rename support fields to align with eol fields (#338)
Companion PR of https://github.com/endoflife-date/endoflife.date/pull/4931.
2024-04-02 21:41:18 +02:00
Marc Wrobel
f5f743c647 [release_table] Support specifying a column by its index
Column could only be referenced by their name. Now they can also be referenced by their 1-based index.
2024-03-16 09:55:32 +01:00
Marc Wrobel
0accf350b2 Natively support the %m/%Y and %m-%Y date formats 2024-03-15 23:35:54 +01:00
Nil Perez
e835f0273f [chef-infra-server] Automate versions retrieval (#316)
Fetch released versions from docs.chef.io and retrieve their date from GitHub. docs.chef.io needs to be scraped because not all tagged versions are actually released.

More context on https://github.com/endoflife-date/endoflife.date/pull/4425#discussion_r1447932411.

---------

Co-authored-by: Marc Wrobel <marc.wrobel@gmail.com>
2024-03-09 21:37:44 +01:00
Marc Wrobel
1fdefa9e03 [aws-lambda] Don't fail anymore on unknown tables (#330) 2024-03-09 00:01:06 +01:00
Marc Wrobel
2f35f1a8c5 [release_table] Allow clicking on page after the JavaScript rendering (#329)
This allows more elements to be rendered before parsing the page.
2024-03-08 23:57:48 +01:00
Marc Wrobel
8d2b85f0ed [release_table] Support JavaScript rendering (#327)
Based on the render_javascript option.
2024-03-04 21:53:26 +01:00
Marc Wrobel
3279f06608 [nutanix] Convert custom script to generic script (#326)
Convert the nutanix.py custom script to a generic script so that it retrieve only a single product data each time it is executed.
2024-03-04 20:26:16 +01:00
Marc Wrobel
725ed07ab1 [release_table] Ignore future releases by default (#325) 2024-03-03 17:00:27 +01:00
Marc Wrobel
e1e1274b13 [release_table] Add support for 'range' type (#324)
This new type converts a comma-separated list of values into a range, only keeping the first and last value.
For example, '1.0, 1.1, 1.2' becomes '1.0 - 1.2'.
2024-03-03 09:55:27 +01:00
Marc Wrobel
8dd4d570e4 [release_table] Simplify header and row selection (#323)
- Change headers_selector to header_selector: there was no need to ask the header cell selection, so updated it to match rows selection.
- Set header_selector default value to 'thead tr'.
- Set rows_selector  default value to 'tbody tr'.
2024-03-03 08:34:52 +01:00
Marc Wrobel
f6b1e3abed Natively support the %Y/%m/%d date format
For parsing dates such as 2020/01/25, as seen on https://github.com/envoyproxy/envoy/blob/main/RELEASES.md#major-release-schedule.
2024-02-23 23:38:44 +01:00
Marc Wrobel
d7d266eb29 [release_table.py] List 'lts' in the date fields 2024-02-23 23:29:35 +01:00
Marc Wrobel
8fff6e9cbe Natively support the %Y-%b-%d date format
For parsing dates such as 2020-Jan-01, as seen on https://www.electronjs.org/docs/latest/tutorial/electron-timelines.
2024-02-23 23:22:22 +01:00
Marc Wrobel
d1a4918534 Fix report.py 2024-02-22 21:32:00 +01:00
Marc Wrobel
7cc7231b95 Add atlassian_eol.py auto method (#318)
This method fetches EOL dates from https://confluence.atlassian.com/support/atlassian-support-end-of-life-policy-201851003.html.
2024-02-22 00:02:02 +01:00
Marc Wrobel
2d5145444b [apple] Adapt script for single-product usage (#317)
Make the Apple script compatible with the way update.py now works, which is 'product' oriented, meaning the script will be called once for each product.

To minimize the impacts the responses are now cached to avoid rate-limiting by support.apple.com.

Version patterns have also been moved to product's auto configuration to make future changes simpler.
2024-02-21 00:21:07 +01:00
Marc Wrobel
c968456d3d [release_table] Improve script for Debian (#315)
- add an 'ignore_empty_releases' to exclude empty releases (which are future releases for Debian),
- improve logging,
- add the 'YYYY-mm' month_year date format.
2024-02-19 22:45:01 +01:00
Marc Wrobel
ba2782157c [release_table] Make date type accept both full and partial dates (#314)
Partial dates are parsed as month_year dates and set to the end of the month.
2024-02-17 16:31:57 +01:00
Marc Wrobel
0704e5b0c5 [release_table] Stop skipping table on cell parsing error (#313) (#313)
Do not skip the remaining cells/rows of a table when the parsing of a single cell fails.
2024-02-17 16:14:56 +01:00
Marc Wrobel
356269d692 [release-table] Support parsing multiple tables (#312)
It has been observed that in many cases, such as for amazon-neptune or amazon-corretto, data is split in two tables: supported and unsupported. Those table usually have similar column names, so by allowing mutiple tables the configuration is simplified.

Also fix script's documentation and improve logging.
2024-02-17 11:23:07 +01:00
Marc Wrobel
b10eb19e32 Raise error when a script did not perform any update in a product (#311) (#311)
This is better than just checkin if both the releases and versions list are empty.
2024-02-17 11:13:53 +01:00
Marc Wrobel
9cf243a10e Fix scripts requiring rendering pages with javascript (#310)
Replace request_html by playwright, as request_html, as it is [not maintained anymore](https://pypi.org/project/requests-html/) and scripts using it, such as artifactory.py, started to fail.
2024-02-16 23:13:42 +01:00
Marc Wrobel
1175756d11 Fix releasedata.py (#308)
Release data were not loaded in the `ProductData#__enter__` method. Data would be lost for auto configuration declaring an auto method updating releases followed by an auto method updating versions.

Also raise an error when product data are completely empty after the update, preventing the product data to be updated at all. This does not catch all types of errors (what if the second script silently fails completely ?), but that's a start.
2024-02-16 21:06:41 +01:00
Marc Wrobel
8549e22527 [release_table] Support month_year_date type (#309)
Support parsing dates when only the month and the year is provided. Day is always the end of the month.
2024-02-15 23:57:17 +01:00
Marc Wrobel
ca0e376397 [aws-lambda] Fix nodejs4.3-edge block function update date (#306)
There is a mistake in the data: block function update date cannot be before the deprecation date.
2024-02-15 21:27:39 +01:00
Marc Wrobel
a801200c11 [release_table] Improve script (#305)
- Add strict typing to the fields. This makes the script fail if some column does not have the expected type (for example because of a change in the HTML page).
- Support regex and templating for all fields (not only the releaseCycle). This make it possible to extract only the necessary information without having to do some sort of 'magic' cleanup (replacements in dates have been reverted).
- Do not inject 'releaseCycle' anymore in the JSON (there is already the name).
2024-02-15 00:12:50 +01:00
Marc Wrobel
6723854591 [palo-alto-networks] Delete unused script 2024-02-13 22:43:57 +01:00
Marc Wrobel
c94b4ed8bc Support more special date formats (#304)
Add a few replacement to support dates containing th/st/rd or and ending *.
2024-02-13 22:30:28 +01:00
Marc Wrobel
8c6b733297 [release_table] Only select a single table (#302)
- The script was currently not raising any error in case no table were selected.
- It does not really make sense to support selecting multiple tables for now as there is no use case, and using multiple configuration is always possible.

Also fix the way the releaseCycle is handled.
2024-02-13 08:18:49 +01:00
Marc Wrobel
90585e0315 [release_table] Add support for regex, regex_exclude and template parameters
Just like versions, release_table now supports regex, regex_exclude and template parameters.
2024-02-11 22:48:32 +01:00
Marc Wrobel
dedc826a95 Add the new release_table method (#300)
Add a new release_table to automate the retrieval of release-level information such as releaseDate, support or eol fields.
2024-02-11 21:46:22 +01:00
Marc Wrobel
b6f14c8d61 Support release-level data (#297)
Support retrieving and updating generic release-level data, such as support and eol dates. The JSON format has been changed accordingly to add a new top-level `releases` key.

The `aws-lambda.py` script has been updated to make use of this new feature.
2024-02-11 16:57:59 +01:00
Marc Wrobel
a0ba2d687e Improve scripts execution orchestration (#299)
Until now products could declare multiple auto-update methods, but they all had to be of the same kind.
For example if you used the git auto-update method, you could not use an additional github_releases or custom auto-update method.
This is an issue as it prevents us to extend the auto-update process, for example by having a product using the 'git' auto-update method to retrieve all the versions, and a custom script to retrieve support and EOL dates.

This improve the scripts execution orchestration to be able to support auto configurations using a mix of methods, meaning:

- multiple kind of methods, such as git and github_release,
- or multiple custom methods.

A side-effect of those changes is that now a failure in a generic script does not cancel the update of subsequent products.

Another side-effect, unwanted this time, is that now custom scripts managing multiple products, such as apple.py, are now executed multiple times instead of once.
2024-02-11 15:28:26 +01:00
Marc Wrobel
8f459f2bc3 Update to support new auto structure (#298)
See https://github.com/endoflife-date/endoflife.date/pull/4570.
2024-02-07 23:27:57 +01:00
Marc Wrobel
4bd2c3dfb8 Process product in alphabetic order for a given method (#296) 2024-02-04 18:14:48 +01:00
Marc Wrobel
dc3f4e0653 [firefox][unity] Add support for cumulative updates and use it in a few scripts (#295)
Generic support for cumulative updates has been added to speed up execution time of some scripts that were very long (in comparison with the vast majority of products), usually because they were involving a lot of HTTP requests.

This feature was developed particularily for the firefox.py and unity.py scripts, which was often very long to execute (a minute or moreaccording to GHA summaries). Those scripts has been updated to make use of this new feature.
2024-02-04 18:05:18 +01:00
Marc Wrobel
0e0e227875 Order scripts by execution duration in GHA summary (#293) 2024-02-04 15:02:08 +01:00
Marc Wrobel
56cc29b49d Make releasedata.Product usable in 'with' expression (#294)
This way the writing of the JSON file is handled automatically if the update does not fail.
It pave the way to further global improvements, such as a better error handling.
2024-02-04 14:48:05 +01:00
Marc Wrobel
8f6efad2cc Simplify endoflife.list_products usage (#292)
Make endoflife.list_products return product instead of just the product name, to avoid having to reload the product a second time to get more information.
2024-02-03 00:26:23 +01:00
Marc Wrobel
651666f594 Remove releasedata.py's Product.has_version method
This method is hardly used, so using Product.get_version instead is a better choice.
2024-01-29 22:38:54 +01:00
Marc Wrobel
42165ea287 Preserve all version fields (#286)
Up to now extra version fields were ignored: only name and date fields were accepted. This changes that by retaining the full JSON data when reading the file, making it possible in the future to support custom fields.

This also fixes a bug with versions having released on the same date: they was not ordered as expected (reverse order).
2024-01-28 23:46:41 +01:00
Marc Wrobel
4bc535aabb [graalvm] Fix script
Tabled moved from the 2nd to the 3rd position. Updating the script so it is more resilient.
2024-01-28 23:07:49 +01:00
Marc Wrobel
d8628e8cdf [ibm-aix] Stop fetching version from web.archive.org (#285)
Disabled because it causes too many timeouts / errors, see https://github.com/endoflife-date/release-data/actions/runs/7630234550 or https://github.com/endoflife-date/release-data/actions/runs/7636410022.
2024-01-24 23:39:15 +01:00
Marc Wrobel
7747e4b24f [firefox] Fix script (#284)
- batch HTTP URL fetching by 20 to reduce the number of unnecessary retries,
- search for c-release-date directly.
2024-01-24 23:38:35 +01:00
Marc Wrobel
d72008ae9c Update user-agent (#283)
Update user-agent to the latest Firefox ESR.
2024-01-24 22:58:56 +01:00