Skip to content
This repository was archived by the owner on Feb 3, 2026. It is now read-only.

Commit 6a434c5

Browse files
committed
build: 修复大版本更新时没有检测所有版本依赖问题
1 parent 1dad1b2 commit 6a434c5

File tree

1 file changed

+30
-4
lines changed

1 file changed

+30
-4
lines changed

!src-dist/plib/assert_version.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def update_assert_version(
162162
"""
163163
# 验证新版本格式
164164
try:
165-
Semver(new_version)
165+
new_semver = Semver(new_version)
166166
except Exception:
167167
print(f"Error: Invalid version format: {new_version}")
168168
return 0, 0
@@ -172,6 +172,10 @@ def update_assert_version(
172172
print(f"Scanning Lua files in: {current_dir}")
173173
print(f"Target version: {new_version}")
174174

175+
# 检测是否为大版本升级
176+
is_major_upgrade = False
177+
previous_version = ""
178+
175179
# 如果指定了 diff 参数或 force_changed,使用 git.get_version_info 获取版本信息
176180
if diff_ver is not None or force_changed:
177181
print("Getting version information...")
@@ -181,11 +185,33 @@ def update_assert_version(
181185

182186
base_hash = version_info.get("previous_hash", "")
183187
changed_folders = version_info.get("changed_addon_folders", [])
188+
previous_version = version_info.get("previous", "")
184189

185190
if base_hash:
186-
print(f"Base version: {version_info.get('previous', '')} ({base_hash})")
187-
188-
if changed_folders:
191+
print(f"Base version: {previous_version} ({base_hash})")
192+
193+
# 检测大版本升级
194+
if previous_version:
195+
try:
196+
prev_semver = Semver(previous_version)
197+
is_major_upgrade = new_semver.major > prev_semver.major
198+
if is_major_upgrade:
199+
print(
200+
f"⚠️ Major version upgrade detected ({previous_version} -> {new_version})"
201+
)
202+
print(
203+
"Scanning ALL Lua files to update incompatible version constraints..."
204+
)
205+
except Exception:
206+
pass
207+
208+
# 大版本升级时,扫描所有文件(让 satisfies 逻辑判断是否需要更新)
209+
if is_major_upgrade:
210+
lua_files = find_lua_files(current_dir)
211+
# 大版本升级时不强制更新,让 semver_satisfies 自然判断
212+
# ^28.x.x 不满足 29.0.0,会自动更新
213+
force_update = False
214+
elif changed_folders:
189215
print(f"Changed addon folders: {', '.join(changed_folders)}")
190216
# 只处理变更的子插件文件夹中的 Lua 文件
191217
lua_files = []

0 commit comments

Comments
 (0)