File tree Expand file tree Collapse file tree 2 files changed +17
-5
lines changed Expand file tree Collapse file tree 2 files changed +17
-5
lines changed Original file line number Diff line number Diff line change @@ -38,10 +38,18 @@ def get_latest_spark_version() -> str:
38
38
for ref in all_refs
39
39
if ref .startswith ("spark-" ) and "incubating" not in ref and "preview" not in ref
40
40
]
41
+
41
42
# Compare versions semantically
42
- latest_version = max (
43
- stable_versions , key = lambda ver : [int (sub_ver ) for sub_ver in ver .split ("." )]
44
- )
43
+ def version_array (ver : str ) -> tuple [int , int , int , str ]:
44
+ # 3.5.3 -> [3, 5, 3, ""]
45
+ # 4.0.0-preview2 -> [4, 0, 0, "preview2"]
46
+ arr = ver .split ("." )
47
+ assert len (arr ) == 3 , arr
48
+ major , minor = int (arr [0 ]), int (arr [1 ])
49
+ patch , _ , preview = arr [2 ].partition ("-" )
50
+ return (major , minor , int (patch ), preview )
51
+
52
+ latest_version = max (stable_versions , key = lambda ver : version_array (ver ))
45
53
LOGGER .info (f"Latest version: { latest_version } " )
46
54
return latest_version
47
55
Original file line number Diff line number Diff line change @@ -122,8 +122,12 @@ def tag_value(container: Container) -> str:
122
122
SPARK_VERSION_LINE_PREFIX = r" /___/ .__/\_,_/_/ /_/\_\ version"
123
123
124
124
spark_version = _get_program_version (container , "spark-submit" )
125
- version_line = spark_version .split ("\n " )[4 ]
126
- assert version_line .startswith (SPARK_VERSION_LINE_PREFIX )
125
+ version_line = next (
126
+ filter (
127
+ lambda line : line .startswith (SPARK_VERSION_LINE_PREFIX ),
128
+ spark_version .split ("\n " ),
129
+ )
130
+ )
127
131
return "spark-" + version_line .split (" " )[- 1 ]
128
132
129
133
You can’t perform that action at this time.
0 commit comments