Skip to content

发版 workflow 和 v0.1.0 的说明、哈希 - #5

Merged
qiyinxi merged 2 commits into
ModAVD:mainfrom
qiyinxi:release/v0.1.0
Nov 7, 2026
Merged

qiyinxi merged 2 commits into
ModAVD:mainfrom
qiyinxi:release/v0.1.0

Conversation

@qiyinxi

@qiyinxi qiyinxi commented Nov 7, 2026

Copy link
Copy Markdown
Member

#1 第 1 步:发 v0.1.0 的 Release,带两个 DLL。

Refs #1

改了什么

  • .github/workflows/release.yml(新):照 ModAVDManager 的 release.yml。
    • 打 v* tag 触发,只在 ModAVD/ModAVDExtras 上跑;顶层 permissions: {}。
    • build job(contents: read):tag 必须是 vX.Y.Z、提交在 refs/remotes/origin/main 上、和 CMakeLists.txt 唯一那行 project(ModAVDExtras VERSION ...) 一致;在 windows-2025 上照 ci.yml 编(cmake -A x64,--config Release)、跑 ctest;release/<版本>.SHA256SUMS.txt 必须和按 ci.yml 格式拼出的两行逐字节相同,对不上就停。删 tag 的推送不跑。
    • draft job(只有它有 contents: write):下载 artifact,SHA256SUMS 必须和 tag 下的逐字节相同,文件只许是两个 DLL 加 SHA256SUMS.txt,每个 DLL 再核一次哈希;同一个 tag 已有 Release(含草稿)就停;tag 必须仍指向 build 编的那个提交(--verify-tag 只看 tag 在不在);然后 gh release create --draft --verify-tag。
    • 发布由维护者看过草稿后手动点。
  • .github/workflows/ci.yml:Windows job 最后一步改成按 SHA256SUMS 的格式打印(<哈希> <文件名>)。原来是 Format-Table,文件名被截断,看不出哪行是哪个 DLL。
  • release/0.1.0.SHA256SUMS.txt:取自 main 566f823 上 CI 编出的值;BGR 转换按 16 像素一块:SSSE3 / NEON,加标量回退 #4 自己的 CI 编出的两个哈希也相同。哪个哈希对应哪个文件,看本 PR 的 CI 打印(新格式带文件名)再核一次。
  • release/0.1.0.md:发版说明,中英两段。两个 DLL 是什么、和旧伪装 DLL 的异同(照 交接:截图增强 DLL(ModAVDExtras)接下来的工作 #1)、BGR 转换按 16 像素一块:SSSE3 / NEON,加标量回退 #4 量的耗时、许可证和源码链接、怎么核对。

跑过什么

  • 隐私扫描(私有规则):0 失败。
  • zizmor 1.32.0 本机跑过:默认档 0 个发现。
  • workflow 本身要打 tag 才会跑,合并前跑不了。PowerShell 里的几段检查(SHA256SUMS 整份比对、版本行、tag 格式)在本机用同样的代码模拟过。
  • release.yml 带写权限,另找了一位审查者(AI 子代理,没参与写)审过:结论能合。一条 P2(建草稿前 tag 被挪走)和六条 P3(origin/main 歧义、SHA256SUMS 解析不严、tag 和版本的正则、可复现条件说窄了、标题重复)都已改进第二个提交。
  • 剩下一条要靠仓库设置:给 v* 加 tag 规则集(禁止更新和删除)、打开 immutable releases,这样草稿建好以后 tag 也挪不动。由维护者决定开不开。

合并之后

  1. 维护者在 main 上打 v0.1.0 tag 并推送。
  2. release workflow 建草稿;看过附件和说明后发布。
  3. 如果 runner 镜像中途换了 MSVC,哈希会对不上、workflow 停在 build:重取哈希另提 PR,删 tag 重打。

- release.yml:照 ModAVDManager 的做法。打 vX.Y.Z tag 触发,只在 ModAVD/ModAVDExtras 上跑;
  核对 tag 在 main 上、和 CMakeLists.txt 的版本一致;在 windows-2025 上照 ci.yml 编、跑测试,
  两个 DLL 逐个和 release/<版本>.SHA256SUMS.txt 核对;草稿 job 才有 contents: write,
  下载回来再核一遍,同一个 tag 已有 Release(含草稿)就停。
- ci.yml:Windows 最后一步按 SHA256SUMS 的格式打印两个 DLL 的哈希,取哈希时不用再猜哪行是哪个。
- release/0.1.0.SHA256SUMS.txt:取自 main(566f823)上 CI 编出的值,PR ModAVD#4 的 CI 编出的也相同。

Refs ModAVD#1
- 建草稿前核对 tag 仍指向 build 编的那个提交;--verify-tag 只看 tag 在不在。删 tag 的推送不跑。
- ancestry 用 refs/remotes/origin/main,叫 origin/main 的 tag 不会顶替远程分支。
- SHA256SUMS 必须和按 ci.yml 格式拼出的两行逐字节相同,不再逐行解析。
- tag 和 CMakeLists.txt 的版本按大小写、只认 ASCII 数字、只许一行 project(...) 来比。
- 去掉 --title,标题照 ModAVDManager 用 tag 名;说明里可复现的条件写全(同样的命令、MSVC 和 Windows SDK 版本)。

Refs ModAVD#1
@qiyinxi
qiyinxi added this pull request to the merge queue Nov 7, 2026
Merged via the queue into ModAVD:main with commit ed7b8ad Nov 7, 2026
6 checks passed
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