Skip to content

chore: 升级 VelaShell.PluginSdk 至 2.1.4 - #34

Merged
joesdu merged 2 commits into
mainfrom
feat/update-sdk-2.1.4
Oct 25, 2026
Merged

joesdu merged 2 commits into
mainfrom
feat/update-sdk-2.1.4

Conversation

@joesdu

@joesdu joesdu commented Oct 25, 2026

Copy link
Copy Markdown
Collaborator

改动内容

升级插件 SDK 至 2.1.4。

SDK 2.1.4 新增能力

  • 插件协议的符号链接、修改时间设置、摘要计算支持
  • 插件通知 IUiApi.PostNotificationAsync
  • SemanticVersion 完整实现与比较

构建验证

✅ 编译通过 (0 警告 0 错误)

- VelaShell.PluginSdk 2.1.2 -> 2.1.3。
- 删掉 VersionOrder:商店选版改用 SemanticVersion.TextComparer(完整 SemVer 优先级,
  beta.2 < beta.10;解析不出的当最旧,只要还有合法版本就不会被挑成「最新」)。
  「正式版」改判为「能解析且不带预发布」,不再只看有没有 '-'。
- 装载闸 IsOlder(doctor / dev init / install 后的兼容核对)改用 CompareCoreTo:
  只比数字段、忽略预发布,任一侧解析不出照旧放行。
- update 的「有没有新版」改用新增的 IsNewer(完整优先级 CompareTo):装着 1.2.0-beta.1 时
  商店上的 1.2.0 现在算更新(原来整段丢预发布,判成「没变」)。任一侧解析不出时不再猜,
  逐条说明跳过原因,装着的版本不合法时提示用 install 换掉。
- 维护者决定(第二轮第 28 条):plugin.json 的 version / minHostVersion / minSdkVersion
  在 SDK 正则之上再要求 SemanticVersion 能解析,并拒绝首尾空白(正则的 $ 放行结尾换行)。
  pack / validate 直接拒绝,doctor 记为一个问题;报错写明哪一段不合法并给出改法,例如
  Invalid version '1.0.0-beta.01': pre-release identifier '01' is a number with a leading zero ...
  Use e.g. "1.0.0-beta.1".
  install / info / list 读别人的包仍按 SDK 清单规则(宿主装载的口径),不因此拒装已发布的包。
  接受与否只看 SemanticVersion.TryParse;ManifestVersionRules 只负责解释原因,
  等 SDK 的 PluginManifestReader 自己收紧后可以整个删掉。
SDK 2.1.4 新增能力:
- 插件协议的符号链接、修改时间设置、摘要计算支持
- 插件通知 IUiApi.PostNotificationAsync
- SemanticVersion 完整实现与比较
@joesdu
joesdu merged commit 82cc5d9 into main Oct 25, 2026
1 check passed
@joesdu
joesdu deleted the feat/update-sdk-2.1.4 branch October 25, 2026 12:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant