Repository navigation
ci(release): 同步 1.21.11 多版本发布配置 - #251
Conversation
- 为 1.21.11 开发线同步多版本总控、日志选择和失败规则 - 统一 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;文档与总控 PR #252 的实现一致;唯一需要作者处理的是合并顺序,因为文档指向的 Create Multi-Version Releases 工作流和「版本后缀、自动日志」章节都还不存在,依赖仍处于 open 状态的 #252 与 #247。
审查范围:base dev/1.21.11 → head 1e1dc715,2 文件 +6/−4(patch-diff 与 API 声明完全一致)、draft=false、mergeable=true、state=open、无已有 review。
✅ 一、本轮针对 1.21.11 分支实际完成的验证
| 检查点 | 结论 |
|---|---|
| head sha | 1e1dc715 与 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 覆盖 |
| 与同批一致性 | RELEASING.md 与 #248、#249、#250 逐字节相同 |
| 本线其他副本 | module.gradle:21/29 两处 cjsah URL 已带尾斜杠,无需再改 |
文档三条日志规则与 #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;其 RELEASING.md 首行仍是 # AnvilLib 正式发布,写的是「Actions → Release AnvilLib → Run workflow」,与本 PR 新写的入口名不符。
提供方:#252(open,其 diff 含 +name: Create Multi-Version Releases 与新 RELEASING.md);「版本后缀」章节还依赖 #247(open)。
建议:#252 先合(或与六条适配 PR 同批、六条后合);若必须先合,请在文档或 PR 描述里注明「发布入口由默认分支 #252 提供」。
💡 三、roseau.gradle:32 无尾斜杠是故意的,建议把文档措辞限定
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 项测试在本地 Python 3.11.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 提供。