diff --git a/release/README.md b/release/README.md index 2b6951f5b..8d0704445 100644 --- a/release/README.md +++ b/release/README.md @@ -6,12 +6,14 @@ | 发行代号 | Android Native / RN | iOS Metal | 状态 | 入口 | | --- | --- | --- | --- | --- | +| v25 | `13.6.1-particle.25` | `6.29.0-particle.25` | GSRL Source Lock 正式发行 | [v25 版本说明](maplibre-particle/13.6.1-particle.25/README.md) | | 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) | +- v25 Source Lock:[SOURCE_LOCK.json](maplibre-particle/13.6.1-particle.25/SOURCE_LOCK.json) - 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) +- 最新统一发布清单:[release-manifest.json](maplibre-particle/release-manifest.json) - Maven:`https://pbf.jpcn.ccwu.cc/maven` - RN 包:`https://pbf.jpcn.ccwu.cc/npm` - iOS Metal 二进制:`https://pbf.jpcn.ccwu.cc/swift/maplibre-particle` diff --git a/release/maplibre-particle/13.6.1-particle.25/README.md b/release/maplibre-particle/13.6.1-particle.25/README.md new file mode 100644 index 000000000..8fa17f540 --- /dev/null +++ b/release/maplibre-particle/13.6.1-particle.25/README.md @@ -0,0 +1,36 @@ +# MapLibre Particle v25 正式发行 + +Android/RN:`13.6.1-particle.25`;iOS Metal/SwiftPM:`6.29.0-particle.25`。跳过 v24,v23 不覆盖。 + +Build Source Commit:`f32f6f45fd359007e8b3c77911b66d9e7fc93848`。 + +正式发行 Git Tag:`maplibre-particle/rn/13.6.1-particle.25`。 + +## 公网获取入口 + +| 组件 | URL | +| --- | --- | +| android / android-sdk-particle-opengl-13.6.1-particle.25.aar | https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.25/android-sdk-particle-opengl-13.6.1-particle.25.aar | +| android / android-sdk-particle-opengl-13.6.1-particle.25.pom | https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.25/android-sdk-particle-opengl-13.6.1-particle.25.pom | +| android / android-sdk-particle-opengl-13.6.1-particle.25.module | https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.25/android-sdk-particle-opengl-13.6.1-particle.25.module | +| reactNative / navsea-maplibre-particle-rn-13.6.1-particle.25.tgz | https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.6.1-particle.25.tgz | +| ios / MapLibre.dynamic.xcframework.zip | https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.25/MapLibre.dynamic.xcframework.zip | +| ios / MapLibre.dynamic.xcframework.zip.sha256 | https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.25/MapLibre.dynamic.xcframework.zip.sha256 | + +所有六个文件 SHA-256 与尺寸均以同目录 `SOURCE_LOCK.json` 的 `files[]` 为准。发布时使用统一流水线 `tools/particle_release_pipeline/release.sh 25`,经公网重下载逐字节比对通过。 + +## 安装 / 使用 + +- Android Maven:`https://pbf.jpcn.ccwu.cc/maven`,依赖 `cc.navsea.maplibre:android-sdk-particle-opengl:13.6.1-particle.25`;包括四 ABI。 +- RN:从表中 tgz 安装 `@navsea/maplibre-particle-rn@13.6.1-particle.25`,peer `@maplibre/maplibre-react-native@11.5.0`。 +- iOS:SwiftPM `https://pbf.jpcn.ccwu.cc/swift/maplibre-particle-spm.git`,exact tag `6.29.0-particle.25`,product `MapLibre`,Metal ios-arm64 实体机专用,无 Simulator。 + +## GSRL 接收与验收边界 + +从本发行入口读取 SOURCE_LOCK.json,核对 Build Source Commit、Tag、依赖和六项制品的 SHA-256;任何不匹配均不得按 v25 接收。 + +Android / iOS 真实设备发行产物、RN Host 整体联调在 v25 尚未执行,不能把 STEP-119 旧 APK 稳态 CPU 结果视作 v25 二进制真机验收。 + +本版对 iOS 资源编译采用受控预编译 Assets.car:原始 Images.xcassets 自 v23 未变、Xcode 26.3、SHA 已记录,详见 `docs/报告/V25_iOS实体机Bazel构建兼容性修复与资源溯源_v1.md`。 + +发行清单:`release/maplibre-particle/release-manifest.json`。 diff --git a/release/maplibre-particle/13.6.1-particle.25/SOURCE_LOCK.json b/release/maplibre-particle/13.6.1-particle.25/SOURCE_LOCK.json new file mode 100644 index 000000000..c1401bc9d --- /dev/null +++ b/release/maplibre-particle/13.6.1-particle.25/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.25", + "versions": { + "android": "13.6.1-particle.25", + "reactNative": "13.6.1-particle.25", + "ios": "6.29.0-particle.25" + }, + "source": { + "gitRemote": "https://git.eyaku.jp/tei/MapLibreParticleLab", + "gitCommit": "f32f6f45fd359007e8b3c77911b66d9e7fc93848", + "gitRef": "refs/tags/maplibre-particle/rn/13.6.1-particle.25", + "note": "gitCommit是实际构建冻结源提交;GSRL Source Lock与最终发行清单在后续提交内记录,Tag指向包含Source Lock和发行清单的最终Commit。" + }, + "files": [ + { + "releaseUnit": "android", + "name": "android-sdk-particle-opengl-13.6.1-particle.25.aar", + "location": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.25/android-sdk-particle-opengl-13.6.1-particle.25.aar", + "sha256": "629d5d437d884ec2017f3fde007aaadfd2bc787983457f75bcaf4d4a13184a1e", + "sizeBytes": 16625344 + }, + { + "releaseUnit": "android", + "name": "android-sdk-particle-opengl-13.6.1-particle.25.pom", + "location": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.25/android-sdk-particle-opengl-13.6.1-particle.25.pom", + "sha256": "1d699fa3b0584fe73c54fec01ae2d310c25be2181f9a92445d5cf354aae685b2", + "sizeBytes": 5687 + }, + { + "releaseUnit": "android", + "name": "android-sdk-particle-opengl-13.6.1-particle.25.module", + "location": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.25/android-sdk-particle-opengl-13.6.1-particle.25.module", + "sha256": "e67ee618439561be7e410ca6a2af9594055827903f16e53f16c1ffc967735273", + "sizeBytes": 6999 + }, + { + "releaseUnit": "reactNative", + "name": "navsea-maplibre-particle-rn-13.6.1-particle.25.tgz", + "location": "https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.6.1-particle.25.tgz", + "sha256": "e5ed678c90bad6082dda30fb9937894cabe28732160391816b785d3c88c208e9", + "sizeBytes": 29029 + }, + { + "releaseUnit": "ios", + "name": "MapLibre.dynamic.xcframework.zip", + "location": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.25/MapLibre.dynamic.xcframework.zip", + "sha256": "91808cfb5559dfa050fe4d466d2c9fa2dc492021bd1a203c778450dc0dae20af", + "sizeBytes": 4176630 + }, + { + "releaseUnit": "ios", + "name": "MapLibre.dynamic.xcframework.zip.sha256", + "location": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.25/MapLibre.dynamic.xcframework.zip.sha256", + "sha256": "a6e708b547600b20f7e8500f8e756be5f720b8df4c7ffa0565da99d695631469", + "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.25", + "coordinate": "cc.navsea.maplibre:android-sdk-particle-opengl:13.6.1-particle.25", + "role": "OpenGL AAR, arm64-v8a/armeabi-v7a/x86/x86_64" + }, + { + "name": "iOS SwiftPM MapLibre", + "version": "6.29.0-particle.25", + "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.25/README.md", + "releaseManifest": "release/maplibre-particle/release-manifest.json", + "status": "RELEASED", + "validation": { + "publicReadback": "PASS - release.sh 25 publish, six files public download byte-compared to build artifacts", + "androidBuild": "PASS - four ABI OpenGL Release AAR, build source f32f6f45...", + "iosMetalBuild": "PASS - Bazel opt Metal ios-arm64 XCFramework, no simulator slices", + "reactNativePack": "PASS - npm pack, peer @maplibre/maplibre-react-native 11.5.0", + "androidDevice": "NOT_TESTED - V25 release binary", + "reactNative115HostIntegration": "NOT_TESTED - V25", + "iosMetalDevice": "NOT_TESTED - V25 release binary", + "step119CPU": "PARTIAL - STEP-119 earlier validation APK source 32ac795... not V25 release binary", + "note": "GSRL PASS is source/file identity and availability only, not device runtime certification. iOS device-only build reused byte-identical Xcode 26.3 v23 Assets.car from unchanged original assets; see docs/报告/V25_iOS实体机Bazel构建兼容性修复与资源溯源_v1.md." + } +} diff --git a/粒子开发记录.md b/粒子开发记录.md index f58b6d873..fdd52b3e4 100644 --- a/粒子开发记录.md +++ b/粒子开发记录.md @@ -1204,3 +1204,5 @@ Android V3-08 单次综合验收已完成并关闭。Native `13.4.1-particle.2` - 2026-10-11 STEP-119 RCRR CPU效率测试准备:按用户新原则,C仅保留RasterParticleLayer,WeatherColor+海图进入R;新增RCR/RCRR/RCRRR的粒子独占C布局和同Style关闭缓存的Full CPU对照。加入进程CPU核秒/秒、近似CPUms/Native完成帧、实际FPS与Full-Fast-Full A-B-A比较器,保留原24Gate和所有历史负例;修复Test App菜单ID冲突。Python 12项非Jest测试PASS、ADB CLK_TCK=100预检;新APK编译/安装和CPU真实对比仍NOT VERIFIED,STEP119继续PARTIAL。见docs/60_测试/STEP-119_RCRR多配置验收矩阵_v2.md及docs/报告/STEP-119_粒子独占C与CPU效率_阶段验收_v1.md。 - 2026-10-11 STEP-119 RDC Android CPU真机续验:用户明确授权 Mac 编译,新 x86_64 APK commit=32ac795fc4abd04006673bf644f87a711329e78f SHA256=2bbd1cb4dc9e03ec56d8404363970e56f76b03819f6f2b50c8aee6dbb6fa43d2,Gradle成功、设备gzip+HTTP传输校验及pm安装成功、preflight SHA/ABI匹配。9次CPU基准中8次有效:Full中位60.67ms/帧、RCR两R中位3.50ms/帧、RCRR三R 7.04ms/帧、RCRRR四R 7.82ms/帧;正向全 Fast、Native末120帧119 Fast/0 Full、24Gate完整失配0。Full-Fast-Full控制漂移2.7%,RCRR相对Full估算CPU/帧降低88.4%。错误宽C Fast0/Full+339、Particle误入R Fast0/Full+322,皆安全拒绝。原采样器shell参数和日志环绕错误经RDC复盘纠正;仅证实固定相机CPU稳态,动态天气/Camera/Source/Tile/Annotation/Context刷新、图像同等、GPU能耗、GTest/Metal/iOS仍未通过。STEP119仍PARTIAL,正式报告docs/报告/STEP-119_RCRR粒子独占C_CPU真机验证_阶段报告_v2.md。 + +- 2026-10-12 v25 GSRL 发行记录准备:跳过 v24,Android/RN 13.6.1-particle.25、iOS 6.29.0-particle.25,同源构建提交 f32f6f45fd359007e8b3c77911b66d9e7fc93848。统一构建 exit0、六项制品 NAS 公网回读逐字节 PASS、SwiftPM 发布 PASS;新增 Source Lock 与使用说明,最终 Tag/Push/remote verify 须以后续 Pipeline 结果为准。iOS arm64 预编译未变化资源 Assets.car 的来源/Hash 已另文记录;v25 真机运行 NOT_TESTED,STEP-119 CPU 结果不冒充 v25 运行时验证。