-
Notifications
You must be signed in to change notification settings - Fork 0
ZH Release Checklist
本 checklist 补充自动化 Validate-Repository.ps1 与 Build-Release.ps1。只有自动检查与 Windows 手工 smoke tests 都通过,release 才算完成。
- 当 system DNS 无法解析
api.github.com、但当前 Shadowsocks 隧道可用时,DNSCrypt Install/Check update 仍应通过 SOCKS5 上的 Cloudflare DoH(Google 备用)访问 GitHub;若隧道上游仍失败,应在显示本地化 UI 错误前把原始异常写入 Logs。 -
Directory.Build.props的Version正确。 -
ApplicationInfo、manifests、CHANGES 与 published EXE 使用一致的 5.2.31 / 5.2.31.0。 - Source archive 不包含
.git、.github、bin、obj、artifacts。 - Source archive 不包含 release binary。
- Publish directory 只有
Shadowsocks.exe。
.\packaging\Validate-Repository.ps1
.\packaging\Build-Release.ps1- Restore 使用
NuGetAudit=true/NuGetAuditMode=all。 - Compiler/analyzer warning 会阻止 release。
- Unit/integration tests 通过。
- Final EXE FileVersion 与 release version 一致。
- ZIP 与 SHA-256 来自已验证的 one-file publish。
- 无需 UAC 即可运行。
- 不会无故提取 NetworkService/WinDivert。
- Local PAC 将 system proxy 请求送入 managed proxy。
- C#
FilterEngine正确产生 DIRECT/PROXY。 - Local PAC 模式下,Open user-rule.txt 会创建/打开当前用户规则文件;修改后 managed snapshot 原子更新。
- 切换到 Online PAC 后,Local managed routing、Local user rules 与本地 GeoSite source 卡片隐藏;切回 Local PAC 后恢复显示。
- 无效 rebuild 保留 last-known-good snapshot。
- UAC 启动 broker/helper。
- WinDivert 2.2.2 x64 下载并通过 SHA-256。
- TCP/UDP capture 生效。
- HTTP Host / TLS SNI 与 User Mode rule 行为一致。
- 不发生 TLS MITM/CA/certificate replacement。
- Application Direct/Proxy/Block 优先。
- ECH/no-SNI/non-HTTP fallback 确定。
- Game Mode 暂停并恢复 Admin capture,不产生第二次 UAC。
-
首次安装 DNSCrypt 时,下载/验证/激活全过程持续显示活动的 ProgressRing/ProgressBar 与操作文本;暂不可用的 DNS 设置应隐藏,而不是以 disabled 控件造成卡死错觉。
-
System、Direct、Proxy、CustomDoh、DnsCrypt全部验证。 -
Administrator Mode 的 UDP/TCP 53 正常。
-
DNSCrypt install/update/signature validation 通过。
-
Active DNSCrypt 不存在 plaintext/system fallback。
-
Automatic resolver filters 满足 DNSSEC/no-log/no-filter/IPv4/IPv6。
-
ODoH 保持禁用。
-
DNSCrypt crash/restart 期间没有 plaintext window。
-
导入引用已知 built-in plugin 但尚未安装的
ss://时,UI 提供 Install、Import without plugin、Cancel;安装成功后继续正常的服务器导入确认。 -
Built-in plugin install 正常并保存 trusted repository/release/asset provenance。
-
Catalog plugin 提供 Automatic updates;Check updates 可强制手动检查。
-
Background maintenance 将成功 release check 限制为每 24 小时一次,推迟 in-use plugin,在 network/release check 失败后稍后重试且不推进 success timestamp,并拒绝低于已安装版本的可解析候选版本。
-
ZIP/TAR.GZ manual import 正常且永不 auto-update。
-
Traversal/rooted/Windows-ADS path 与 link/special TAR entry 被拒绝;download/extraction limits 生效;GitHub 提供 SHA-256 asset digest 时进行验证。
-
Staging/rollback package replacement 正常完成后不留下 transient dir。
-
Managed package 位于 active storage root。
-
Server 通过
PluginManager解析插件。 -
Clean Mode 插件位于 Temp session。
- 只接受
Shadowsocks-win-x64.zip与.sha256。 - Draft release 被忽略;prerelease 由设置控制。
- SHA-256、ZIP layout、payload FileVersion 都验证。
- Equal version / downgrade 被拒绝。
-
.downloadstream 在 promotion 前关闭。 - Staged updater 验证自身 SHA-256。
- Replacement 可 rollback。
- Startup-copy 更新 primary EXE,随后刷新 startup copy。
- 取消 UAC 不会结束正在工作的应用。
- EXE 旁没有可变状态。
- Normal root:
%LOCALAPPDATA%\Shadowsocks。 - Clean root:
%TEMP%\Shadowsocks\Clean\...。 - Quit 后 Clean session 被删除。
- Clean Mode 禁用 Start with Windows。
- 旧 startup entries 会去重/迁移。
-
依次切换 EN/RU/zh-CN/zh-TW/JA/KO/FR,确认页面标题、内置 Settings、tray 命令、Hotkey 间接动作标签与注册状态 tooltip 都遵循应用选择的语言。
-
对不明显的交互 controls 检查本地化 ToolTip 与 accessibility HelpText;状态不能只靠颜色表达。
-
无关的上下文 UI 被隐藏:Plugin=None 时的 plugin 字段、No proxy 时的 Forward Proxy 详情、Online PAC 下的 Local-only PAC 卡片、非 Admin/Game runtime 下的 Admin diagnostics。
-
Selection/dirty/busy 状态一致:Save/Discard 与 selection actions 在不适用时禁用;重复项 Add 禁用;DNSCrypt/GeoSite/online-config/plugin/update 长操作显示进度并阻止冲突操作。
-
页面与 tray 对 Online PAC URL 使用相同规则,只接受绝对 HTTP/HTTPS;保存 URL 无效时必须修正后才能启用 Online PAC。
-
暂时选择 Plugin=None 只隐藏 plugin-specific 字段,不会在 Save 前破坏未保存值。
-
在 Plugins 中选择已安装的 catalog plugin 时,主操作文本与本地化 tooltip 必须同步从 Install 切换为 Reinstall;busy 状态应禁用已安装 plugin 列表及冲突操作。
-
在 PAC / GeoSite 中,未保存的 source 更改必须禁用 Download / refresh,并显示本地化说明要求先保存 sources;refresh 期间显示进度并禁用 source 编辑。
-
主页面可打开。
-
Tray 正常。
-
Servers、Plugins、Traffic、DNS、PAC/GeoSite、Logs、About & updates 完成 smoke test。
-
Embedded License / Third-party notices 可以打开。
-
EN/RU/zh-CN/zh-TW/JA/KO/FR 的 user-visible strings 不为空。
-
新 controls 的 ToolTip/HelpText 已验证。
- Windows 10 build 19041+。
- Windows 11。
- x64。
- Startup、import、proxy enable/disable、tray、quit。
- 测试的是最终打包的 exact release ZIP。
-
CI 绿色后才创建 tag。
-
Draft release 包含 ZIP 与 SHA-256。
-
Release notes 已审核。
-
发布的是已经 smoke-tested 的同一 asset。
-
DNSCrypt 解析器目录刷新使用 Shadowsocks 上的 Cloudflare DoH,并以 Google DoH 备用;解析器列表 HTTPS 同样通过 Shadowsocks,Minisign 在发布前验证,生成的目录 TOML 包含
urls = []、bootstrap_resolvers = []、ignore_system_dns = true。