From 43250f09e41079ce58af0d6fd800d2c743f80c00 Mon Sep 17 00:00:00 2001 From: Robert Sworder Date: Wed, 30 Apr 2025 16:22:26 +0100 Subject: [PATCH 1/2] Use 1 year/3 months for supported dates 365 days and 90 days are not *quite* the same. --- .../contrib/get_supported_version_csi-sidecar.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/release-tools/contrib/get_supported_version_csi-sidecar.py b/release-tools/contrib/get_supported_version_csi-sidecar.py index 30bbcf24b..52a001d44 100644 --- a/release-tools/contrib/get_supported_version_csi-sidecar.py +++ b/release-tools/contrib/get_supported_version_csi-sidecar.py @@ -75,8 +75,8 @@ def end_of_life_grouped_versions(versions): supported_versions = [] # Prepare dates for later calculation now = datetime.datetime.now() - one_year = datetime.timedelta(days=365) - three_months = datetime.timedelta(days=90) + one_year = now.replace(year=now.year-1) + three_months = now.replace(month=now.month-3) # get the newer versions on top sorted_versions_list = sorted(versions.items(), key=lambda x: x[0], reverse=True) @@ -89,10 +89,10 @@ def end_of_life_grouped_versions(versions): first_release = v[1][-1] last_release = v[1][0] # if the release is less than a year old we support the latest patch version - if now - first_release[1] < one_year: + if first_release[1] > one_year: supported_versions.append(last_release) - # if the main release is older than a year and has a recent path, this is supported - elif now - last_release[1] < three_months: + # if the main release is older than a year and has a recent patch, this is supported + elif last_release[1] > three_months: supported_versions.append(last_release) return supported_versions @@ -109,7 +109,7 @@ def get_release_docker_image(repo, version): def get_versions_from_releases(repo): """ Using `gh` cli get the github releases page details then - create a list of grouped version on major.minor + create a list of grouped version on major.minor and for each give all major.minor.patch with release dates """ # Run the `gh release` command to get the release list From ed31e8edc6f21bcfb7065ad92088a23c8821e23e Mon Sep 17 00:00:00 2001 From: Robert Sworder Date: Wed, 30 Apr 2025 17:12:28 +0100 Subject: [PATCH 2/2] Use relativedelta to be resilient to running on some days --- .../contrib/get_supported_version_csi-sidecar.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/release-tools/contrib/get_supported_version_csi-sidecar.py b/release-tools/contrib/get_supported_version_csi-sidecar.py index 52a001d44..a379f1e69 100644 --- a/release-tools/contrib/get_supported_version_csi-sidecar.py +++ b/release-tools/contrib/get_supported_version_csi-sidecar.py @@ -74,9 +74,9 @@ def end_of_life_grouped_versions(versions): """ supported_versions = [] # Prepare dates for later calculation - now = datetime.datetime.now() - one_year = now.replace(year=now.year-1) - three_months = now.replace(month=now.month-3) + now = datetime.date.today() + one_year = now - relativedelta(years=1) + three_months = now - relativedelta(months=3) # get the newer versions on top sorted_versions_list = sorted(versions.items(), key=lambda x: x[0], reverse=True) @@ -89,10 +89,10 @@ def end_of_life_grouped_versions(versions): first_release = v[1][-1] last_release = v[1][0] # if the release is less than a year old we support the latest patch version - if first_release[1] > one_year: + if first_release[1] >= one_year: supported_versions.append(last_release) # if the main release is older than a year and has a recent patch, this is supported - elif last_release[1] > three_months: + elif last_release[1] >= three_months: supported_versions.append(last_release) return supported_versions @@ -125,7 +125,7 @@ def get_versions_from_releases(repo): continue major, minor, patch = parsed_version - published = datetime.datetime.strptime(parts[3], '%Y-%m-%dT%H:%M:%SZ') + published = datetime.datetime.strptime(parts[3], '%Y-%m-%dT%H:%M:%SZ').date() versions[(major, minor)].append((version, published)) return(versions)