From 2be54b2bd73f42a26615019bc3a827e0ba440770 Mon Sep 17 00:00:00 2001
From: Max Gautier <mg@max.gautier.name>
Date: Mon, 23 Dec 2024 13:50:45 +0100
Subject: [PATCH] Filter new versions for new ones and same minor releases

We're only interested in new patch releases for auto-update.
---
 scripts/download_hash.py | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/scripts/download_hash.py b/scripts/download_hash.py
index 4b2a1eee7..0eeb06d75 100644
--- a/scripts/download_hash.py
+++ b/scripts/download_hash.py
@@ -191,9 +191,20 @@ def download_hash(only_downloads: [str]) -> None:
                                 strict=True))
 
     new_versions = {
-            component: github_versions[component] - set(list(archs.values())[0].keys())
-            for component, archs in data.items() if component in [k + '_checksums' for k in downloads.keys()]
+            component:
+            {v for v in github_versions[component]
+                    if any(v > version and (v.major, v.minor) == (version.major, version.minor)
+                           for version in [max(minors) for _, minors in groupby(cur_v, lambda v: (v.minor, v.major))])
+                           # only get:
+                           # - patch versions (no minor or major bump)
+                           # - newer ones (don't get old patch version)
             }
+            - set(cur_v)
+            for component, archs in data.items()
+            if component in [k + '_checksums' for k in downloads.keys()]
+            # this is only to bound cur_v in the scope
+            and (cur_v := sorted(Version(k) for k in next(archs.values().__iter__()).keys()))
+        }
 
 
 
-- 
GitLab