Conversation
只改 CHANGELOG.md / main/Cargo.toml / Cargo.lock 的发布 PR 此前仍要跑 macOS / Linux / Windows 三平台全量测试(Windows job 约 25 分钟),而改动里 没有任何代码,这些测试没有意义。 - ci.yml 新增 classify job:PR 场景下用 script/release_pr.py 判定是否只包含 发布改动,是则跳过 test 与 windows-rdp-probe,改为就地校验发布元数据 - script/release_pr.py:分类规则为「改动文件全部属于发布白名单」且 「Cargo.toml / Cargo.lock 的差异只有 version = "..." 行」;命中后校验 main/Cargo.toml 与 Cargo.lock 中 main 包版本一致,且该版本的双语 changelog 条目完整(更新内容/修复与优化 + What's New/Fixes and Improvements,含 CNB 镜像行);无法算出 diff 时回退到全量测试 - ci-gate 仍是唯一必需状态检查,分类或校验失败都会拦住合并 - .github/RELEASE.md 记录该快速通道 - windows_rdp_host 契约测试钉住 classify/needs/if 结构与脚本白名单 验证: - python3 -m unittest discover -s script/tests -p "test_release_pr.py" — 16 passed - cargo test -p windows_rdp_host --test contract — 40 passed - ruby -ryaml 解析 ci.yml,核对 classify/test/windows-rdp-probe/ci-gate 的 needs 与 if 表达式 - rustfmt --edition 2024 --check crates/windows_rdp_host/tests/contract.rs
ci: 发布 PR 只跑发布元数据校验,跳过全平台测试
- CHANGELOG.md:新增 v0.18.4 双语条目(macOS 托盘恢复窗口崩溃、Windows 重复启动) - main/Cargo.toml、Cargo.lock:版本 0.18.3 -> 0.18.4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
发布 v0.18.4
用户可见改动
NSApplication::activate(),而该选择器是 macOS 14 才新增,LSMinimumSystemVersion声明的却是 macOS 12;现改为按respondsToSelector运行时分派,低版本走activateIgnoringOtherApps:。(fix(tray): 托盘恢复主窗口按系统版本选择激活选择器,修复 macOS 13 及更早系统崩溃 #238)ERROR_ACCESS_DENIED(5),代码在等AddrInUse),转发分支从未执行;且转发依赖的 I/O 超时在 Windows 命名管道上恒返回Unsupported。本次按 tokio 命名管道重写单实例 IPC,启动门禁收紧为 fail-closed。(fix(single-instance): 修复 Windows 重复启动会开出第二个窗口 #239,贡献者 @paofu-cium)随带合入
ci: 发布 PR 只跑发布元数据校验,跳过全平台测试(此前在dev上、未进main)。实测发现 GitHub 对
pull_request事件执行的是 PR 合并结果上的 workflow 文件,而不是 base 分支的:origin/main的ci.yml里并没有classifyjob,但本 PR 的Classify changes确实跑起来了,说明新ci.yml在本 PR 上即刻生效。但本 PR 的 diff 含 5 个非发布白名单文件(
.github/RELEASE.md、.github/workflows/ci.yml、crates/windows_rdp_host/tests/contract.rs、script/release_pr.py、script/tests/test_release_pr.py),script/release_pr.py check据此判定release-only: False,因此本 PR 仍会跑三平台全量测试。从下一次纯发布 PR 起该快速通道才会真正跳过矩阵。dev已先合入main(git merge-tree预演与实际合并均无冲突)。发布元数据
main/Cargo.toml/Cargo.lock:0.18.3→0.18.4CHANGELOG.md:新增 v0.18.4 双语条目(修复与优化+Fixes and Improvements,含 CNB 镜像行)本地验证
python3 script/changelog.py validate --tag v0.18.4 --changelog CHANGELOG.md→ Validated changelog entry: v0.18.4python3 -m unittest discover -s script/tests -p "test_release_pr.py"→ 16 passedcargo test -p windows_rdp_host --test contract→ 40 passed, 0 failedscript/release_pr.py check(base=origin/main, head=dev)→release-only: False,原因如上合并后
在
main上执行script/release-tag.sh v0.18.4,推送 tag 触发Releaseworkflow。