diff --git a/docs/50_Step记录/STEP-108_V23统一正式发行_v1.md b/docs/50_Step记录/STEP-108_V23统一正式发行_v1.md new file mode 100644 index 000000000..34bf1846d --- /dev/null +++ b/docs/50_Step记录/STEP-108_V23统一正式发行_v1.md @@ -0,0 +1,20 @@ +# STEP-108 V23 同源统一正式发行 v1 + +- 日期:2026-10-09(JST) +- 状态:**构建 PASS / 六项公网回读 PASS / GSRL 锁与 Tag 收尾中** +- 冻结源码提交:`87f3d1c59a52581fb8339f0ea7d106b9f4b94fef` +- 主目录:`/Users/tei/dev/MapLibreParticleLab`,分支 `particle/main` +- 版本:Android/RN `13.6.1-particle.23`,iOS Metal `6.29.0-particle.23` +- 前序修复:STEP-107 Darwin Style CoreOnly Peer 防崩溃代码已纳入。 + +## 分阶段事实 +1. Prepare:冻结并 push 源码版本,commit `87f3d1c59a52581fb8339f0ea7d106b9f4b94fef`,版本互锁正确。 +2. Build:`tools/particle_release_pipeline/release.sh 23 build`,exit 0;Android OpenGL 四 ABI Release、Maven Local、iOS Metal Bazel opt 与 RN tgz 均 PASS。日志:`/tmp/maplibre_v23_unified_release_build_20261009.log`。 +3. Publish:`tools/particle_release_pipeline/release.sh 23 publish`,exit 0;六文件 NAS 公网逐字节回读 PASS,SwiftPM `6.29.0-particle.23` Tag 可取。日志:`/tmp/maplibre_v23_unified_release_publish_20261009.log`。 +4. GSRL:六项文件实际 SHA-256 与下载地址见 `release/maplibre-particle/13.6.1-particle.23/SOURCE_LOCK.json`。 +5. Finalize:正式源码 Tag `maplibre-particle/rn/13.6.1-particle.23` 及最终远端核验执行后记录。 + +## 未验收及禁区 +- STEP-107 XCTest 与 iPad 直接点击崩溃场景尚未运行;不得宣称已实机修复。 +- V23 Android 实机、React Native 宿主整体集成、iOS Metal 真机 NOT_TESTED。 +- 原 V22 Tag/Source Lock 与发行制品不覆盖;禁止新建 worktree、擅自纳入无关 dirty 文件。 diff --git a/release/README.md b/release/README.md index d21a66217..2b6951f5b 100644 --- a/release/README.md +++ b/release/README.md @@ -6,8 +6,10 @@ | 发行代号 | Android Native / RN | iOS Metal | 状态 | 入口 | | --- | --- | --- | --- | --- | +| v23 | `13.6.1-particle.23` | `6.29.0-particle.23` | GSRL Source Lock 正式发行 | [v23 版本说明](maplibre-particle/13.6.1-particle.23/README.md) | | v22 | `13.6.1-particle.22` | `6.29.0-particle.22` | GSRL Source Lock 正式发行 | [v22 版本说明](maplibre-particle/13.6.1-particle.22/README.md) | +- v23 Source Lock:[SOURCE_LOCK.json](maplibre-particle/13.6.1-particle.23/SOURCE_LOCK.json) - v22 Source Lock:[SOURCE_LOCK.json](maplibre-particle/13.6.1-particle.22/SOURCE_LOCK.json) - v22 统一发布清单:[release-manifest.json](maplibre-particle/release-manifest.json) - Maven:`https://pbf.jpcn.ccwu.cc/maven` diff --git a/release/maplibre-particle/13.6.1-particle.23/README.md b/release/maplibre-particle/13.6.1-particle.23/README.md new file mode 100644 index 000000000..4ed73f2dd --- /dev/null +++ b/release/maplibre-particle/13.6.1-particle.23/README.md @@ -0,0 +1,59 @@ +# MapLibre Particle 13.6.1-particle.23 正式发行 + +发行说明:本目录保存 **GSRL 源码与制品身份记录**;二进制正式存放在 NAS 的公网发行入口(不会提交进 Git)。v23 同源冻结提交为 `87f3d1c59a52581fb8339f0ea7d106b9f4b94fef`。 + +## 版本与发行范围 + +- Android OpenGL Native:`cc.navsea.maplibre:android-sdk-particle-opengl:13.6.1-particle.23`,包含 `arm64-v8a`、`armeabi-v7a`、`x86`、`x86_64`。 +- React Native package:`@navsea/maplibre-particle-rn@13.6.1-particle.23`,peer `@maplibre/maplibre-react-native@11.5.0`。 +- iOS Metal:`MapLibre` XCFramework / SwiftPM `6.29.0-particle.23`(ios-arm64)。 +- 正式源码 Tag:`maplibre-particle/rn/13.6.1-particle.23`;Build Source Commit 见 `SOURCE_LOCK.json`。 + +## 公网制品(NAS 发布) + +| 制品 | 获取地址 | +| --- | --- | +| Android AAR | https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.23/android-sdk-particle-opengl-13.6.1-particle.23.aar | +| Android POM | https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.23/android-sdk-particle-opengl-13.6.1-particle.23.pom | +| Android Gradle Module Metadata | https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.23/android-sdk-particle-opengl-13.6.1-particle.23.module | +| RN tgz | https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.6.1-particle.23.tgz | +| iOS Metal XCFramework zip | https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.23/MapLibre.dynamic.xcframework.zip | +| iOS XCFramework SHA-256 文件 | https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.23/MapLibre.dynamic.xcframework.zip.sha256 | + +完整 SHA-256 以本目录 `SOURCE_LOCK.json` 的 `files[]` 为权威记录。以上文件均已按 NAS 公网重新下载与原始构建文件逐字节比对。 + +## 使用方法 + +**Android**:Gradle Maven repository 增加 `https://pbf.jpcn.ccwu.cc/maven`,依赖: + +`implementation("cc.navsea.maplibre:android-sdk-particle-opengl:13.6.1-particle.23")` + +本版 AAR 采用 OpenGL,不宣称包含 Vulkan 制品。 + +**React Native**:从上表 RN tgz 的 HTTPS URL 安装 `@navsea/maplibre-particle-rn`;宿主需使用 `@maplibre/maplibre-react-native@11.5.0`。按 package 内 `README.md` 配置 Android Maven、Expo plugin、iOS Podspec/codegen;勿继续锁定 v21 的 `13.4.1` Native。 + +**iOS**:SwiftPM repository:`https://pbf.jpcn.ccwu.cc/swift/maplibre-particle-spm.git`,选择 exact tag `6.29.0-particle.23`,product `MapLibre`。将 RN iOS 依赖与该同源 Metal binary 按宿主 Post Install 说明接入。 + +## GSRL 来源核对与接收 + +1. 从此目录获取 `SOURCE_LOCK.json`,确认项目名、发行版本、Git Remote、完整 `gitCommit` 和 `gitRef`。 +2. 按上述 URL 下载所需制品,重新计算各文件 SHA-256,与 `files[]` 逐项比较;确认 Gradle/RN/SwiftPM 依赖版本。 +3. SHA 或来源不同不得按本版接收。已发行版本不可覆盖;修正须使用新版本。 + +## 验证边界 + +- Mac 统一源码构建、四 ABI Android Release AAR、iOS Metal ios-arm64 XCFramework、RN tgz 与公网逐字节回读:PASS。 +- 本版 V23 尚未执行 Android 实机 / RN 11.5.0 宿主整体验收;不得引用 V22 的 STEP-106 通过事实冒充 V23 运行时测试。 +- Android 实机、RN 11.5.0 宿主整体集成、iOS Metal 真机:**V23 尚未验证**。STEP-107 已包含 iOS nil Peer 崩溃代码修复,但唐津港湾 iPad 直接点击及 XCTest 仍未完成,不宣称崩溃实机修复 PASS。 +- GSRL PASS 仅代表源码与发行文件身份一致、可获取、依赖及说明完整。 + +## 溯源 + +- Build Source Commit:`87f3d1c59a52581fb8339f0ea7d106b9f4b94fef` +- 主发行清单:`release/maplibre-particle/release-manifest.json` +- GSRL Source Lock:`release/maplibre-particle/13.6.1-particle.23/SOURCE_LOCK.json` +- 原始构建与发布详细日志位于 Mac 临时工作区 `artifacts/maplibre-particle/`,**不是使用方获取入口**。 + +## V23 修复范围 + +本版包含 STEP-107 的 Darwin MLNStyle CoreOnly Layer 无 ObjC Peer 的集合访问保护及层顺序修正。原 V22 发行身份保持不变,后续真机验收状态单独追踪。 diff --git a/release/maplibre-particle/13.6.1-particle.23/SOURCE_LOCK.json b/release/maplibre-particle/13.6.1-particle.23/SOURCE_LOCK.json new file mode 100644 index 000000000..b699bac25 --- /dev/null +++ b/release/maplibre-particle/13.6.1-particle.23/SOURCE_LOCK.json @@ -0,0 +1,104 @@ +{ + "schemaVersion": "gsrl/source-lock/v1", + "project": "MapLibreParticleLab", + "releaseUnit": "Particle unified Android OpenGL / React Native / iOS Metal", + "version": "13.6.1-particle.23", + "versions": { + "android": "13.6.1-particle.23", + "reactNative": "13.6.1-particle.23", + "ios": "6.29.0-particle.23" + }, + "source": { + "gitRemote": "https://git.eyaku.jp/tei/MapLibreParticleLab", + "gitCommit": "87f3d1c59a52581fb8339f0ea7d106b9f4b94fef", + "gitRef": "refs/tags/maplibre-particle/rn/13.6.1-particle.23", + "note": "gitCommit为实际构建的V23冻结源码提交;发行清单与Source Lock在其后续发行提交中创建,Tag保留历史。" + }, + "files": [ + { + "releaseUnit": "android", + "name": "android-sdk-particle-opengl-13.6.1-particle.23.aar", + "location": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.23/android-sdk-particle-opengl-13.6.1-particle.23.aar", + "sha256": "263821b686a569110ad704f817b288522eb2a153f49bf4162ace2226b28220b7", + "sizeBytes": 16541816 + }, + { + "releaseUnit": "android", + "name": "android-sdk-particle-opengl-13.6.1-particle.23.pom", + "location": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.23/android-sdk-particle-opengl-13.6.1-particle.23.pom", + "sha256": "15e63a9936b015c6539ec7cdad271b4472e879e628e4f5ea9c3f1f3e581c61b9", + "sizeBytes": 5687 + }, + { + "releaseUnit": "android", + "name": "android-sdk-particle-opengl-13.6.1-particle.23.module", + "location": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.23/android-sdk-particle-opengl-13.6.1-particle.23.module", + "sha256": "d7fbf0aef8128a55c8a4d9b591e131a495d87fce6486b5e01834b2cc14635fb1", + "sizeBytes": 6999 + }, + { + "releaseUnit": "reactNative", + "name": "navsea-maplibre-particle-rn-13.6.1-particle.23.tgz", + "location": "https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.6.1-particle.23.tgz", + "sha256": "6d8d2fa2312deee97fe9304c62887cd11490a70bc08e4a90f4ee8cf7ec83ed87", + "sizeBytes": 29009 + }, + { + "releaseUnit": "ios", + "name": "MapLibre.dynamic.xcframework.zip", + "location": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.23/MapLibre.dynamic.xcframework.zip", + "sha256": "9dbc477458377ab7e207bfd125d8f4106d3d83e7f923499a7bc048e39f74a76a", + "sizeBytes": 4147380 + }, + { + "releaseUnit": "ios", + "name": "MapLibre.dynamic.xcframework.zip.sha256", + "location": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.23/MapLibre.dynamic.xcframework.zip.sha256", + "sha256": "df1a37167f151f9d0ef215f18be60b8181b1b80f26584fe63dec7307a9c80293", + "sizeBytes": 99 + } + ], + "dependencies": [ + { + "name": "@maplibre/maplibre-react-native", + "version": "11.5.0", + "role": "React Native host peer, iOS MapLibreReactNative Pod" + }, + { + "name": "React Native", + "version": ">=0.80.0", + "role": "RN package peer requirement" + }, + { + "name": "Expo", + "version": ">=54.0.0 (optional)", + "role": "RN optional peer" + }, + { + "name": "Android Native SDK", + "version": "13.6.1-particle.23", + "coordinate": "cc.navsea.maplibre:android-sdk-particle-opengl:13.6.1-particle.23", + "role": "OpenGL AAR, arm64-v8a/armeabi-v7a/x86/x86_64" + }, + { + "name": "iOS SwiftPM MapLibre", + "version": "6.29.0-particle.23", + "url": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle-spm.git", + "role": "Exact version, product MapLibre, Metal ios-arm64" + } + ], + "usage": "release/maplibre-particle/13.6.1-particle.23/README.md", + "releaseManifest": "release/maplibre-particle/release-manifest.json", + "status": "RELEASED", + "validation": { + "publicReadback": "PASS - release.sh 23 publish, all six files retrieved and byte-compared", + "androidBuild": "PASS - four ABI OpenGL Release AAR", + "iosMetalBuild": "PASS - Bazel opt Metal ios-arm64 XCFramework", + "reactNativePack": "PASS - npm pack", + "androidDevice": "NOT_TESTED - V23", + "reactNative115HostIntegration": "NOT_TESTED - V23", + "iosMetalDevice": "NOT_TESTED - V23", + "iosMapTapCrashRegression": "NOT_TESTED - STEP-107 code included, iPad direct-tap validation pending", + "note": "GSRL PASS means source/artifact identity and availability, not runtime device certification." + } +} diff --git a/粒子开发记录.md b/粒子开发记录.md index d1739ef29..e97171d06 100644 --- a/粒子开发记录.md +++ b/粒子开发记录.md @@ -1089,3 +1089,8 @@ Android V3-08 单次综合验收已完成并关闭。Native `13.4.1-particle.2` - 新增 `MLNStyleTests.mm` 混合 CoreOnly/普通 Layer 的集合及顺序回归用例;`git diff --check` PASS。Mac Bazel iOS Native `//platform/ios:MapLibre.dynamic` PASS,982.084 秒,ZIP 校验 PASS,SHA-256 `f16b7f2be761a101bb4b906b900175b95412abfeef09d715e2c9321b300a7b8a`。 - XCTest 尚未执行;iPad 唐津海图物体直接点击、多 Source、天气开关及粒子渲染尚未真实验收;不能宣称 Bug 已在设备上消失。未修改 V22 Tag、正式发行资料、NavSea、Android 或 Shared Core。 - Step:`docs/50_Step记录/STEP-107_iOS_StyleCoreOnlyPeer集合修复_v1.md`;报告:`docs/报告/STEP-107_iOS_StyleCoreOnlyPeer集合修复_RDC实施报告_v1.md`。 + +### 2026-10-09 STEP-108 V23 正式发行(构建/公网回读 PASS,Tag 收尾中) + +- 构建源码 `87f3d1c59a52581fb8339f0ea7d106b9f4b94fef`。统一发行 Android/RN `13.6.1-particle.23`、iOS `6.29.0-particle.23`。Mac 四 ABI Android、iOS Metal opt、RN pack 成功,公网六项文件回读 PASS。 +- GSRL Source Lock 记录六文件 sha256;V23 Android/iOS 实机及 STEP-107 iPad 崩溃复测仍 NOT_TESTED,不能写成设备 PASS。