Commit Graph

23 Commits

Author SHA1 Message Date
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
72b9be8955 Normalize release names (#483)
Automatically normalize release names. This may be useful in a few situations to avoid having to write a custom script.
2025-08-02 15:52:03 +02:00
Marc Wrobel
a985e6218f [chrome-releases] Add auto method (#469)
Based on https://chromiumdash.appspot.com API.
2025-07-15 23:37:16 +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
42c1189781 Copy releases from products frontmatter (#465)
Copy releases, without their properties, from product data (frontmatter) to release data.

This script is not intended to be declared in the frontmatter: it is for internal use only.
It executes before all other scripts, and helps the following scripts to work with releases.
2025-07-12 16:47:36 +02:00
Marc Wrobel
08808282dd Add new declare method (#461)
For manually declare (or overwrite) missing or erroneous versions.
2025-07-08 00:16:08 +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
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
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
725ed07ab1 [release_table] Ignore future releases by default (#325) 2024-03-03 17:00:27 +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
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
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
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
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
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
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
d72008ae9c Update user-agent (#283)
Update user-agent to the latest Firefox ESR.
2024-01-24 22:58:56 +01:00
Marc Wrobel
b339c81ead Split endoflife.date and releasedata models in separate files (#276)
This makes the code easier to read.
2024-01-07 20:22:46 +01:00