Commit Graph

34 Commits

Author SHA1 Message Date
Marc Wrobel
5b652fac74 [version_table] Support javascript rendering (#529)
Similar to release_table.
2025-11-09 14:47:01 +01:00
Marc Wrobel
1fb86114be [version_table] Improve date parsing (#527)
So far the script only allowed datetimes. Now full/partial dates are allowed too.
2025-11-08 13:18:14 +01:00
Marc Wrobel
74cc23ed97 [release_table] Declare latestReleaseDate in date fields 2025-10-11 19:26:39 +02:00
Marc Wrobel
20b0c8d1ff [version_table] Add auto method (#514)
Similar to release_table, but for versions.
2025-09-10 18:12:11 +02:00
Marc Wrobel
c7faf9545f [release_table] Add remove_if_undefined parameter (#494)
remove_if_undefined allows to exclude unreleased release more easily.
2025-08-12 22:39:39 +02:00
Marc Wrobel
050b9eacd2 [release_table] Add debug logs 2025-08-11 23:50:53 +02:00
Marc Wrobel
1735954764 [release-table] Implement render_js_click_selector parameter (#485)
This parameter allows clicking on an element of the page after it was loaded when using `render_javascript`.
2025-08-03 21:43:16 +02:00
Marc Wrobel
c4fa5b187c [http] Improve User-Agent handling (#474)
- Simplify overriding the User-Agent by replacing the generic (unused) `headers` parameter by a new `user_agent` parameters.
- Take into account the User-Agent even in `fetch_javascript_url` : Playwright user agent is `Playwright/1.12.0` by default anyway.
- Make it possible to override the User-Agent with the `release_table` method.
- Update splunk to use Firefox's User-Agent.

This follows #470.
2025-07-26 10:24:54 +02:00
Marc Wrobel
081d884abe Remove invalid releases automatically (#466)
Automatically remove empty releases or releases which are released in the future, regardless of the product.

Also refactored a bit releasedata.py to use better names and clarify types.
2025-07-13 11:36:13 +02:00
Marc Wrobel
1f7a3772d6 [http] Improve fetch_javascript_url (#462)
Replace `click_selector` by `wait_for,` which is a selector that we must wait for before considering the page loaded.

Also added `select_wait_for`, which returns the waited for element. Oddly this may be needed in some case (such as `artifactory.py`) where the `page.content()` does not contain the waited for element.
2025-07-09 23:20:39 +02:00
Marc Wrobel
391d65ad8a Simplify argument parsing (#459)
With the current state of automation scripts, this is not possible anymore to launch script with multiple auto configs.
2025-07-06 22:42:01 +02:00
Marc Wrobel
c78d1fe2b5 Refactor scripts arguments handling (#456)
- remove the use of environment variables to get directory paths,
- make use of arguments / argparse instead of environment variables in `update.py` and `report.py`,
- automatically guess the data directory in `latest.py` based on the script's location,
- propagate log level to auto scripts,
- move `list_configs_from_argv` from `endoflife` module to `releasedata` module,
- use `list_products` in `latest.py` to load the product's frontmatters.
2025-06-28 19:05:07 +02:00
Marc Wrobel
f404274310 Align custom scripts with generic scripts (#445)
Align custom scripts with generic scripts, making them configurable. This has a few advantages:

- script code is more unified,
- no more hard-coded method names in scripts, which is less error prone and make it easier to rename scripts,
- no more hard coded product names in scripts, which is less error prone and make it easier to rename products,
- less hard-coded URLs and regexes in scripts, which makes auto-configuration more expressive / updatable,

Also added method `endoflife.list_configs_from_argv()` so that it is easier to manipulate scripts arguments.
2025-06-07 17:25:05 +02:00
Marc Wrobel
6091ef55fe [samsung-mobile] Add automation (#437)
Detect new models and aggregate EOL data for Samsung Mobile devices.

This script works cumulatively: when a model is not listed anymore on https://security.samsungmobile.com/workScope.smsb
it retains the date and use it as the model's EOL date.
2025-05-07 23:29:33 +02:00
Marc Wrobel
2b6e4f17c9 [release_table] Add the identifier type (#435)
With https://github.com/endoflife-date/endoflife.date/pull/7340 this is now needed for some products.
2025-05-02 16:26:33 +02:00
Marc Wrobel
aa59d4ab9e Update readme 2025-03-24 17:44:20 +01: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
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
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
d7d266eb29 [release_table.py] List 'lts' in the date fields 2024-02-23 23:29:35 +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
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
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
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