Files
MapLibreParticleLab/docs/报告/STEP-060C_MavenLocal签名隔离修正_Codex完成报告_v1.md
OpenAI Codex d1b1e890ac
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: finalize STEP-060C validation metadata
2026-09-07 22:28:44 +08:00

5.2 KiB
Raw Blame History

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 条件:任一 *PublicationToMavenCentralRepository task 存在时为 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.kts
  • docs/60_测试/STEP-060_RNTestHost_Android人工编译与验收_v1.md
  • integration/react-native/MapLibreParticleRNTestHost/README.md
  • docs/50_Step记录/STEP-060B_GateC封存环境与CustomAAR接入修正_v1.md
  • docs/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.aar SHA-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 内容提交:9a38271ceecfc33d581d7604ddb16839d270961e — docs: close STEP-060C Maven Local validation。
  • 该提交仅回填人工验收证据与后续验收边界;最终推送后的 Final HEAD、Remote HEAD 与 push 结果由本次任务交付时的 Git 实测结果确认。