Repository navigation
ci(release): 同步 1.21.8 多版本发布配置 - #250
Conversation
- 为 1.21.8 开发线同步多版本总控、日志选择和失败规则 - 统一 Cjsah Maven releases 仓库 URL 格式,上传沿用 MAVEN_URL
🌿 Roseau API Breaking Change Report
|
Gugle2308
left a comment
There was a problem hiding this comment.
结论:settings.gradle 的尾斜杠对 Gradle 解析无影响(Gradle 会规范化仓库 URL),文档与配套 #252 的实现一致;唯一需要作者处理的是合并顺序——文档指向的 Create Multi-Version Releases 与「版本后缀、自动日志」章节目前都还不存在,依赖仍 open 的 #252 与 #247。
审查范围:base dev/1.21.8 → head e475916e,2 文件 +6/−4(patch-diff 与 API 声明逐位一致)、draft=false、mergeable=true、state=open、无既有 review。
✅ 一、本轮针对本条分支实际完成的验证
| 检查点 | 结论 |
|---|---|
| head sha | e475916e 与 payload 一致 |
settings.gradle 改动 |
仅一行:pluginManagement 里 cjsah 的 …/maven/releases → …/maven/releases/;Gradle 会规范化仓库 URL,不改解析行为 |
.github/ci 回归测试 |
抽 head 脚本本地实跑:Ran 2 tests — OK,与 PR 描述「2 项通过」一致 |
| 本分支无发布工作流 | 只有 Build and Test/CI for Mod/Pull Request Check/Roseau PR Comment,确实没有发布入口,因此文档指引到默认分支是合理的 |
| 上传侧地址 | 未硬编码,仍由机密 MAVEN_URL 覆盖 |
| 与同批 #248/#249 一致性 | RELEASING.md 与两者逐字节相同(含新增段落) |
| 本线额外副本 | 本分支还有 module.gradle:21/29 两处 cjsah URL,均已带尾斜杠,与本 PR 的目标格式一致,无需再改 |
文档三条日志规则与 #252 的 release_notes.py 实现逐条吻合(沿用前两轮取证,本分支文档文本已复核一致):
prerelease = release_type(plan["version"]) != "release"
if tag == plan["tag"] or (item["prerelease"] and not prerelease): # 正式版只接正式版
continue
comparison = github(f"compare/{quote(tag, safe='')}...{sha}?per_page=1", missing=True)
if comparison and comparison["status"] in {"ahead", "identical"}: # 祖先关系
previous = tag; break「两站失败不阻塞」也与 #252 一致:mod-sites 加 continue-on-error: true,publish: needs: [prepare, seal, central] 不含 mod-sites。
⚠️ 二、合并顺序:文档入口与章节当前都不存在(主要项,本轮复核仍成立)
直接查 dev/26.1:
.github/workflows/仍是 6 个文件(含release.yml),没有Create Multi-Version Releases;dev/26.1的RELEASING.md首行仍是# AnvilLib 正式发布,写的是「Actions → Release AnvilLib → Run workflow」——与本 PR 新写的入口名及「版本后缀、自动日志、预检、演练与续跑说明见默认分支发布文档」这段对不上。
提供方:#252(open,其 diff 有 +name: Create Multi-Version Releases 与新 RELEASING.md);「版本后缀」章节还依赖 #247(open)。
本批共 8 条 open:#247(版本后缀)、#252(总控)、#248/#249/#250/#251/#253/#254(六条线适配)。
建议:#252 先合(或与六条同批、六条后合);若必须先合,请在文档或 PR 描述里注明「发布入口由默认分支 #252 提供」,避免读者以为入口丢了。
💡 三、roseau.gradle:32 无尾斜杠是故意的,建议把文档措辞限定
本分支同一文件内该 URL 两种写法:
17: url = 'https://server.cjsah.net:1002/maven/releases/' // Gradle 仓库声明
32: for (repoUrl in ['https://repo1.maven.org/maven2',
'https://server.cjsah.net:1002/maven/releases']) // 拼接基址
def conn = new URI("$repoUrl/$groupPath/$moduleName/maven-metadata.xml")… // ← 自己补 /第 32 行是拼接基址,加尾斜杠会产生 …/releases//dev/…。当前正确,但描述写「统一 URL 格式为 …/releases/」会诱导后人误改。建议措辞限定为「Gradle 仓库声明统一为 …/releases/」。注意六条线 RELEASING.md 逐字节相同,措辞变更需在六条 + #252 同批进行。
💡 四、其余(非阻塞)
pluginManagement仓库顺序与dev/26.1不同(本线cjsah → neoforged,26.1 是neoforged → cjsah)——既有差异,本 PR 未改。- 可达性未能独立核实:沙箱内
https://server.cjsah.net:1002/连接失败(000),对照https://github.com/为200,DNS 可解析。不据此判定失效;本 PR 只加尾斜杠,Gradle 侧无行为变化,风险很低,请以作者实跑gradlew.bat help为准。
验证边界
settings.gradle 仅静态语义判定(Gradle 仓库 URL 规范化),未实际跑 Gradle 解析;.github/ci 2 项测试本地实跑通过;#252/#247 结论来自其 patch-diff 阅读(均未合并,内容可能再变);Cjsah 私服可达性未核实。
同步本开发线的 Create Multi-Version Releases 入口说明,由默认分支
dev/26.1自动上传两站、Maven Central 和 GitHub ReleaseFile。两站失败不重传、不阻塞公开与升版;Maven 或 ReleaseFile 失败使整体运行失败。日志按祖先 tag 和版本类型选取范围。Cjsah Maven 依赖仓库已使用 releases 路径,本 PR 统一 URL 格式为
https://server.cjsah.net:1002/maven/releases/。上传仍使用机密MAVEN_URL。验证:本分支 Wrapper/JDK 下
gradlew.bat help --no-configuration-cache --console=plain通过;python -B -X utf8 -m unittest discover -s .github/ci(2 项通过);git diff --check通过。总控逻辑由面向dev/26.1的配套 PR 提供。