Skip to content

Commit 0744833

Browse files
committed
Fix version paradox in package upgrade/downgrade tests
Prevent testing upgrades from newer releases to older dev branches by only including testing releases that are older than the current version. This fixes the issue where after a new release (e.g., v3007.10), branches based on older versions (e.g., v3007.9+dev) would try to upgrade FROM the newer release TO the older dev version, which is backwards and causes all upgrade/downgrade package tests to fail. The fix ensures that only versions older than the current branch are used as testing releases for upgrade/downgrade tests. Example: - Current branch: v3007.9-653-gabcd1234 (based on 3007.9 + dev commits) - Latest 3007.x tag: v3007.10 (newer release) - Before: Would try to upgrade FROM 3007.10 TO 3007.9+dev (backwards!) - After: Skips 3007.10, uses 3007.9 or earlier versions instead This eliminates the need to wait for release tags to be "merged forward" before package tests can pass on development branches.
1 parent cc9fcd1 commit 0744833

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

tools/ci.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -342,10 +342,14 @@ def get_testing_releases(
342342
)
343343
)[-num_major_versions:]
344344
testing_releases = []
345-
# Append the latest minor for each major
345+
# Append the latest minor for each major that is older than the current version
346346
for major in majors:
347347
minors_of_major = [version for version in releases if version.major == major]
348-
testing_releases.append(minors_of_major[-1])
348+
latest_minor = minors_of_major[-1]
349+
# Only include versions older than current to prevent version paradox
350+
# (e.g., don't test upgrading FROM 3007.10 TO 3007.9+dev)
351+
if latest_minor < parsed_salt_version:
352+
testing_releases.append(latest_minor)
349353

350354
str_releases = [str(version) for version in testing_releases]
351355

@@ -910,10 +914,14 @@ def workflow_config(
910914
)
911915
)[-num_major_versions:]
912916
testing_releases = []
913-
# Append the latest minor for each major
917+
# Append the latest minor for each major that is older than the current version
914918
for major in majors:
915919
minors_of_major = [version for version in releases if version.major == major]
916-
testing_releases.append(minors_of_major[-1])
920+
latest_minor = minors_of_major[-1]
921+
# Only include versions older than current to prevent version paradox
922+
# (e.g., don't test upgrading FROM 3007.10 TO 3007.9+dev)
923+
if latest_minor < parsed_salt_version:
924+
testing_releases.append(latest_minor)
917925
str_releases = [str(version) for version in testing_releases]
918926
ctx.info(f"str_releases {str_releases}")
919927

0 commit comments

Comments
 (0)