5.1 KiB
5.1 KiB
STEP-060C Maven Local 签名隔离修正 — Codex 完成报告
结论
STEP-060C 已为 CLOSED / PASS:用户于 2026-09-07 在 Gate C 封存 Linux 环境完成 Maven Local publication,Local 签名隔离按设计生效。本 PASS 仅覆盖 Maven Local signing isolation、发布与 artifact provenance;不代表 RN Test Host Android compile、STEP-060 Phase A/B、lifecycle、Binary Field 或 STEP-061 通过。
实际修改
- 保留 Vanniktech
signAllPublications(),不移除 Maven Central 正式签名能力。 - 将 Gradle
SigningExtension.required改为延迟 task-graph 条件:任一*PublicationToMavenCentralRepositorytask 存在时为 true;否则为 false。 - 因此
:MapLibreAndroid:publishOpenglreleasePublicationToMavenLocal的 Sign task 在无 signatory 时跳过,Central publication 仍要求签名。 - 更新 Gate C/RN Test Host 人工步骤:当前已核对 AAR 可直接 publication,不因本次 publication 配置改动重建。
修改文件
platform/android/buildSrc/src/main/kotlin/maplibre.gradle-publish.gradle.ktsdocs/60_测试/STEP-060_RNTestHost_Android人工编译与验收_v1.mdintegration/react-native/MapLibreParticleRNTestHost/README.mddocs/50_Step记录/STEP-060B_GateC封存环境与CustomAAR接入修正_v1.mddocs/50_Step记录/STEP-060C_MavenLocal签名隔离修正_v1.md粒子开发记录.md
API / publication 契约
| 项目 | 保持的契约 |
|---|---|
| Maven Local 坐标 | org.maplibre.gl:android-sdk-opengl:13.4.1 |
| Local task | :MapLibreAndroid:publishOpenglreleasePublicationToMavenLocal |
| Local 签名 | 无 signatory 时 Sign task 跳过;不使用 -x sign |
| Central 签名 | *PublicationToMavenCentralRepository task graph 中仍 required |
| AAR 来源 | Gate C 已验证的 custom OpenGL AAR;无 flatDir、files repo、第二仓库或 SNAPSHOT |
人工 Maven Local 验收(2026-09-07)
用户执行:
cd /mnt/sda1/MapLibreParticleLab/platform/android
./gradlew :MapLibreAndroid:publishOpenglreleasePublicationToMavenLocal --console=plain
- 已完成:
:MapLibreAndroid:signOpenglreleasePublication SKIPPED;:MapLibreAndroid:publishOpenglreleasePublicationToMavenLocal通过;BUILD SUCCESSFUL in 3m 33s(57 actionable tasks:49 executed、8 up-to-date);输出不含no configured signatory。 - 已完成:
~/.m2/repository/org/maplibre/gl/android-sdk-opengl/13.4.1/含 AAR、POM、module metadata;POM/module 坐标为org.maplibre.gl:android-sdk-opengl:13.4.1。 - 已完成:Maven Local AAR 与
platform/android/MapLibreAndroid/build/outputs/aar/MapLibreAndroid-opengl-release.aarSHA-256 同为2e73e25cfd31bb181f75ba2d84974afb949640f72de46bc0234d4579abe3ba38。 - 已完成:AAR
classes.jar有org/maplibre/android/maps/MapLibreMap.class、org/maplibre/android/maps/WeatherRuntime.class;AAR 有arm64-v8a、armeabi-v7a、x86、x86_64四 ABI;Maven Local 不含.asc,符合 Local publication 不签名的设计。 - 历史说明:
47646fb708d096cf5ee0c3b8eeaeb7e6083081279c79f4a642db554efe88fad7为 publication 前中间 AAR SHA;Gradle 重新执行bundleOpenglReleaseAar后,它不是当前 published artifact。
Codex 静态核验
- 静态读取 Vanniktech
gradle-maven-publish-plugin:0.34.0:signAllPublications()对 release 设置SigningExtension.required;Gradle SigningExtension 的setRequired(Object)支持 deferred Provider,并在 Sign task 执行时解析。 - 静态审计 publication 名称、artifactId、version 与 Central task 名称约束。
- 只读核对 Local/build output AAR SHA、POM/module 坐标、classes、ABI 与
.asc缺失;git diff --check将在本次 docs-only commit 前再次执行。
未执行 / 无法验证
- 未执行:本轮 Codex 未运行 Android Gradle、AAR build、Maven publish、Expo prebuild、APK、ADB、Android 设备/虚拟机测试或 Jest;publication 结果为用户提供的人工实测证据。
- 未完成:RN Test Host
npm ci、clean Expo prebuild、generated Gradle resolution、Android compile/install、STEP-060 Phase A/B、style reload/map remount/stale reactTag/detach lifecycle;任务明确留给下一轮 STEP-060 Android 人工验收。 - 无法验证:本轮没有设备/模拟器与 RN 生成工程执行授权,故不对上述 Android/RN 结果作 PASS 推断。
已知剩余风险与下一步
下一阶段仍是 STEP-060 RN Test Host Android 验收:npm ci、clean Expo prebuild、检查 generated Gradle 的 Maven Local/custom SDK resolution、用户手工 Android compile/install、Phase A/B 与 lifecycle 验收。通过后才可进入 STEP-061。
提交与推送
- 功能提交:
5f0804e8ba3a8a6fed1fff09ddd92a76a77bd458—fix: isolate Maven Local from release signing - 初始文档提交:
9e0666c7c284d5080ebd2e711f46928f788ddcec—docs: record STEP-060C local publish signing fix - 本次人工验收文档收尾 Starting HEAD:
9e0666c7c284d5080ebd2e711f46928f788ddcec。 - 本次 docs-only commit SHA/message、Final HEAD、Remote HEAD 与 push 结果将在收尾 commit 生成后,以最终回填为准。