Skip to content

Commit e1fa9c8

Browse files
authored
scripts/test.lua: ignore version sort (#8811)
1 parent 52a81f7 commit e1fa9c8

File tree

2 files changed

+47
-25
lines changed

2 files changed

+47
-25
lines changed

packages/o/openexr/xmake.lua

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ package("openexr")
1515
add_versions("v3.3.0", "58b00f50d2012f3107573c4b7371f70516d2972c2b301a50925e1b4a60a7be6f")
1616
add_versions("v3.2.4", "81e6518f2c4656fdeaf18a018f135e96a96e7f66dbe1c1f05860dd94772176cc")
1717
add_versions("v3.2.3", "f3f6c4165694d5c09e478a791eae69847cadb1333a2948ca222aa09f145eba63")
18-
add_versions("v2.5.3", "6a6525e6e3907715c6a55887716d7e42d09b54d2457323fcee35a0376960bebf")
19-
add_versions("v2.5.5", "59e98361cb31456a9634378d0f653a2b9554b8900f233450f2396ff495ea76b3")
20-
add_versions("v2.5.7", "36ecb2290cba6fc92b2ec9357f8dc0e364b4f9a90d727bf9a57c84760695272d")
21-
add_versions("v3.1.0", "8c2ff765368a28e8210af741ddf91506cef40f1ed0f1a08b6b73bb3a7faf8d93")
22-
add_versions("v3.1.1", "045254e201c0f87d1d1a4b2b5815c4ae54845af2e6ec0ab88e979b5fdb30a86e")
23-
add_versions("v3.1.3", "6f70a624d1321319d8269a911c4032f24950cde52e76f46e9ecbebfcb762f28c")
24-
add_versions("v3.1.4", "cb019c3c69ada47fe340f7fa6c8b863ca0515804dc60bdb25c942c1da886930b")
25-
add_versions("v3.1.5", "93925805c1fc4f8162b35f0ae109c4a75344e6decae5a240afdfce25f8a433ec")
2618
add_versions("v3.2.1", "61e175aa2203399fb3c8c2288752fbea3c2637680d50b6e306ea5f8ffdd46a9b")
19+
add_versions("v3.1.5", "93925805c1fc4f8162b35f0ae109c4a75344e6decae5a240afdfce25f8a433ec")
20+
add_versions("v3.1.4", "cb019c3c69ada47fe340f7fa6c8b863ca0515804dc60bdb25c942c1da886930b")
21+
add_versions("v3.1.3", "6f70a624d1321319d8269a911c4032f24950cde52e76f46e9ecbebfcb762f28c")
22+
add_versions("v3.1.1", "045254e201c0f87d1d1a4b2b5815c4ae54845af2e6ec0ab88e979b5fdb30a86e")
23+
add_versions("v3.1.0", "8c2ff765368a28e8210af741ddf91506cef40f1ed0f1a08b6b73bb3a7faf8d93")
24+
add_versions("v2.5.7", "36ecb2290cba6fc92b2ec9357f8dc0e364b4f9a90d727bf9a57c84760695272d")
25+
add_versions("v2.5.5", "59e98361cb31456a9634378d0f653a2b9554b8900f233450f2396ff495ea76b3")
26+
add_versions("v2.5.3", "6a6525e6e3907715c6a55887716d7e42d09b54d2457323fcee35a0376960bebf")
2727

2828
add_patches("3.4.0", "patches/3.4.0/openjph-include.patch", "d8eb99fd9f064821134ee61c4bfb0e5dff4be557a21698365361250f13e82e53")
2929
add_patches("3.3.3", "patches/3.3.3/mingw32.patch", "17cbe9d0cbc0c670a846454893c1a427590789cf6bf052a4d800d1263e0faa9a")

scripts/test.lua

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -261,36 +261,58 @@ function _package_is_supported(argv, packagename)
261261
end
262262
end
263263

264+
function append_package_version(packages, line)
265+
local version = line:match("add_versions%(\"(.-)\"") or line:match("package:add%(\"versions\",%s*\"(.-)\"")
266+
if version then
267+
if version:find(":", 1, true) then
268+
version = version:split(":")[2]
269+
end
270+
if #packages > 0 and version then
271+
local lastpackage = packages[#packages]
272+
local splitinfo = lastpackage:split("%s+")
273+
table.insert(packages, splitinfo[1] .. " " .. version)
274+
end
275+
end
276+
end
277+
264278
function get_modified_packages()
265-
local packages = {}
279+
local new_packages = {}
280+
local old_packages = {}
266281
local diff = os.iorun("git --no-pager diff HEAD^")
267282
for _, line in ipairs(diff:split("\n")) do
268283
if line:startswith("+++ b/") then
269284
local file = line:sub(7)
270285
if file:startswith("packages") then
271286
assert(file == file:lower(), "%s must be lower case!", file)
272287
local package = file:match("packages/%w/(%S-)/")
273-
table.insert(packages, package)
288+
table.insert(new_packages, package)
289+
table.insert(old_packages, package)
274290
end
275291
elseif line:startswith("+") and (line:find("add_versions", 1, true) or line:find("package:add(\"versions\"", 1, true)) then
276-
local version = line:match("add_versions%(\"(.-)\"") or line:match("package:add%(\"versions\",%s*\"(.-)\"")
277-
if version then
278-
if version:find(":", 1, true) then
279-
version = version:split(":")[2]
280-
end
281-
if #packages > 0 and version then
282-
local lastpackage = packages[#packages]
283-
local splitinfo = lastpackage:split("%s+")
284-
if #splitinfo > 1 then
285-
table.insert(packages, splitinfo[1] .. " " .. version)
286-
else
287-
packages[#packages] = splitinfo[1] .. " " .. version
288-
end
289-
end
292+
append_package_version(new_packages, line)
293+
elseif line:startswith("-") and (line:find("add_versions", 1, true) or line:find("package:add(\"versions\"", 1, true)) then
294+
append_package_version(old_packages, line)
295+
end
296+
end
297+
if #old_packages > 0 then
298+
table.remove_if(old_packages, function (_, package)
299+
local splitinfo = package:split("%s+")
300+
return #splitinfo == 1
301+
end)
302+
table.remove_if(new_packages, function (_, package)
303+
return table.contains(old_packages, package)
304+
end)
305+
-- {
306+
-- "pkgname", <-- remove this
307+
-- "pkgname pkgver"
308+
-- }
309+
for i = #new_packages - 1, 1, -1 do
310+
if new_packages[i + 1]:startswith(new_packages[i] .. " ") then
311+
table.remove(new_packages, i)
290312
end
291313
end
292314
end
293-
return table.unique(packages)
315+
return table.unique(new_packages)
294316
end
295317

296318
-- @see https://github.com/xmake-io/xmake-repo/issues/6940

0 commit comments

Comments
 (0)