From f626c12e4989fb06e3817d3d4a75c1e9acfbc506 Mon Sep 17 00:00:00 2001 From: imbytecat Date: Wed, 8 Apr 2026 12:37:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(dev):=20hook=20=E5=A4=B1=E8=B4=A5=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=20raise=20SourceError=20=E8=80=8C=E9=9D=9E=E9=9D=99?= =?UTF-8?q?=E9=BB=98=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 全局包安装失败原本只 print 警告,decman 退出码仍为 0,违反声明式语义。 改为汇总后 raise decman.SourceError,符合官方 docstring 推荐(失败应被感知, 下次 sync 会重试)。保留"尝试所有包"逻辑,一次性看到全部失败。 --- modules/dev.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/dev.py b/modules/dev.py index d40bbb1..0897038 100644 --- a/modules/dev.py +++ b/modules/dev.py @@ -78,7 +78,7 @@ class DevModule(Module): except Exception as e: failures.append(f"go: {pkg} ({e})") if failures: - print(f"\n⚠ {len(failures)} 个全局包安装失败:") - for f in failures: - print(f" - {f}") - print() + raise decman.SourceError( + f"{len(failures)} 个全局包安装失败:\n" + + "\n".join(f" - {f}" for f in failures) + )