release: finalize unified particle.22

This commit is contained in:
tei
2026-10-09 16:17:29 +09:00
parent 7cfad1c72f
commit 6365d7869c
7 changed files with 213 additions and 33 deletions

22
release/README.md Normal file
View File

@@ -0,0 +1,22 @@
# Particle 正式发行入口
本仓库按 GSRL v1.0.0 维护源码发行记录。**正式二进制在 NAS/PBF 公网仓库,Git 不存放 AAR、tgz 或 XCFramework。**
## 当前推荐发行
| 发行代号 | Android Native / RN | iOS Metal | 状态 | 入口 |
| --- | --- | --- | --- | --- |
| v22 | `13.6.1-particle.22` | `6.29.0-particle.22` | GSRL Source Lock 正式发行 | [v22 版本说明](maplibre-particle/13.6.1-particle.22/README.md) |
- 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`
- RN 包:`https://pbf.jpcn.ccwu.cc/npm`
- iOS Metal 二进制:`https://pbf.jpcn.ccwu.cc/swift/maplibre-particle`
- SwiftPM:`https://pbf.jpcn.ccwu.cc/swift/maplibre-particle-spm.git`
## 历史版本
v21:`13.4.1-particle.21` / iOS `6.28.0-particle.21`;正式 Git tag 为 `maplibre-particle/rn/13.4.1-particle.21`。它是 GSRL v22 启用前的历史发布,不应将当前 v22 Source Lock 套用到 v21。历史二进制仍可从此前 PBF Maven/npm/SwiftPM 的对应版本取得。
正式接收方应先阅读对应版本说明并校验 Source Lock,不能仅依据文件名安装。

View File

@@ -0,0 +1,55 @@
# MapLibre Particle 13.6.1-particle.22 正式发行
发行说明:本目录保存 **GSRL 源码与制品身份记录**;二进制正式存放在 NAS 的公网发行入口(不会提交进 Git)。v22 同源冻结提交为 `ea5bd393c664a54513531998bf8609a0535639f7`。
## 版本与发行范围
- Android OpenGL Native:`cc.navsea.maplibre:android-sdk-particle-opengl:13.6.1-particle.22`,包含 `arm64-v8a`、`armeabi-v7a`、`x86`、`x86_64`。
- React Native package:`@navsea/maplibre-particle-rn@13.6.1-particle.22`,peer `@maplibre/maplibre-react-native@11.5.0`。
- iOS Metal:`MapLibre` XCFramework / SwiftPM `6.29.0-particle.22`(ios-arm64)。
- 正式源码 Tag:`maplibre-particle/rn/13.6.1-particle.22`;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.22/android-sdk-particle-opengl-13.6.1-particle.22.aar |
| Android POM | https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.22/android-sdk-particle-opengl-13.6.1-particle.22.pom |
| Android Gradle Module Metadata | https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.22/android-sdk-particle-opengl-13.6.1-particle.22.module |
| RN tgz | https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.6.1-particle.22.tgz |
| iOS Metal XCFramework zip | https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.22/MapLibre.dynamic.xcframework.zip |
| iOS XCFramework SHA-256 文件 | https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.22/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.22")`
本版 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.22`,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。
- FZG1-2 x86_64/OpenGL Test App 的 STEP-106 粒子/RenderSegment/Renderer/QBIN 定向回归:PASS;该测试不能替代正式 Release AAR 在 NavSea 上的集成测试。
- Android ARM64 实机、RN 11.5.0 宿主整体集成、iOS Metal 真机:**本次未验证,不宣称这些运行环境 PASS**。
- GSRL PASS 仅代表源码与发行文件身份一致、可获取、依赖及说明完整。
## 溯源
- Build Source Commit:`ea5bd393c664a54513531998bf8609a0535639f7`
- 主发行清单:`release/maplibre-particle/release-manifest.json`
- GSRL Source Lock:`release/maplibre-particle/13.6.1-particle.22/SOURCE_LOCK.json`
- 原始构建与发布详细日志位于 Mac 临时工作区 `artifacts/maplibre-particle/`,**不是使用方获取入口**。

View File

@@ -0,0 +1,103 @@
{
"schemaVersion": "gsrl/source-lock/v1",
"project": "MapLibreParticleLab",
"releaseUnit": "Particle unified Android OpenGL / React Native / iOS Metal",
"version": "13.6.1-particle.22",
"versions": {
"android": "13.6.1-particle.22",
"reactNative": "13.6.1-particle.22",
"ios": "6.29.0-particle.22"
},
"source": {
"gitRemote": "https://git.eyaku.jp/tei/MapLibreParticleLab",
"gitCommit": "ea5bd393c664a54513531998bf8609a0535639f7",
"gitRef": "refs/tags/maplibre-particle/rn/13.6.1-particle.22",
"note": "gitCommit 是实际构建所用的冻结源代码提交;发行清单和 GSRL 记录在后续发行提交。发行 Tag 保留完整历史,不要求 Tag 指向的发行记录提交等于构建源码提交。"
},
"files": [
{
"releaseUnit": "android",
"name": "android-sdk-particle-opengl-13.6.1-particle.22.aar",
"location": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.22/android-sdk-particle-opengl-13.6.1-particle.22.aar",
"sha256": "ed62a67a0882896d3d59f315351d6807941881333494590bc943a858b213a130",
"sizeBytes": 16541912
},
{
"releaseUnit": "android",
"name": "android-sdk-particle-opengl-13.6.1-particle.22.pom",
"location": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.22/android-sdk-particle-opengl-13.6.1-particle.22.pom",
"sha256": "bf66dad234d763aa9ad7ed17576177219063cd5e2a8ff32593608913bc442b3c",
"sizeBytes": 5687
},
{
"releaseUnit": "android",
"name": "android-sdk-particle-opengl-13.6.1-particle.22.module",
"location": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.22/android-sdk-particle-opengl-13.6.1-particle.22.module",
"sha256": "a64e1ac9b9562f947b38c0553679c94aba1b912147825fec6aedfa72fd843f43",
"sizeBytes": 6999
},
{
"releaseUnit": "reactNative",
"name": "navsea-maplibre-particle-rn-13.6.1-particle.22.tgz",
"location": "https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.6.1-particle.22.tgz",
"sha256": "dcd30dd64a3d140934f8ea3a042cbac5c0450e0510c017127824d6a1a53557b5",
"sizeBytes": 29008
},
{
"releaseUnit": "ios",
"name": "MapLibre.dynamic.xcframework.zip",
"location": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.22/MapLibre.dynamic.xcframework.zip",
"sha256": "79b1b8dcd6c647afc150fc33f0771ae81c3ca0c8be93a9a9fa6cce49a1776670",
"sizeBytes": 4147794
},
{
"releaseUnit": "ios",
"name": "MapLibre.dynamic.xcframework.zip.sha256",
"location": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.22/MapLibre.dynamic.xcframework.zip.sha256",
"sha256": "2b5a41897f83b1070c085d07e9e780756fbec599c826dfa3f43d2598751dcfa0",
"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.22",
"coordinate": "cc.navsea.maplibre:android-sdk-particle-opengl:13.6.1-particle.22",
"role": "OpenGL AAR, arm64-v8a/armeabi-v7a/x86/x86_64"
},
{
"name": "iOS SwiftPM MapLibre",
"version": "6.29.0-particle.22",
"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.22/README.md",
"releaseManifest": "release/maplibre-particle/release-manifest.json",
"status": "RELEASED",
"validation": {
"publicReadback": "PASS",
"buildSourceCommit": "ea5bd393c664a54513531998bf8609a0535639f7",
"androidBuild": "PASS - four ABI OpenGL Release AAR",
"androidDevice": "FZG1-2 x86_64 OpenGL Test App smoke/regression PASS (STEP-106; release AAR separate)",
"androidArm64Device": "NOT_TESTED",
"reactNative115HostIntegration": "NOT_TESTED",
"iosMetalDevice": "NOT_TESTED",
"note": "GSRL verifies source and artifact identity, not runtime certification of every target."
}
}

View File

@@ -9,8 +9,8 @@ let package = Package(
targets: [
.binaryTarget(
name: "MapLibre",
url: "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.28.0-particle.21/MapLibre.dynamic.xcframework.zip",
checksum: "fd78ed8f504c3d0ee969954f44501719b94e699aa5b160de849e712b32d24f72"
url: "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.22/MapLibre.dynamic.xcframework.zip",
checksum: "79b1b8dcd6c647afc150fc33f0771ae81c3ca0c8be93a9a9fa6cce49a1776670"
),
]
)

View File

@@ -1,14 +1,14 @@
# MapLibre Particle iOS 发行
当前正式发行:6.28.0-particle.21
当前正式发行:6.29.0-particle.22
- Renderer:Metal
- Product / Module:MapLibre
- Binary:https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.28.0-particle.21/MapLibre.dynamic.xcframework.zip
- SHA-256:fd78ed8f504c3d0ee969954f44501719b94e699aa5b160de849e712b32d24f72
- Binary:https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.22/MapLibre.dynamic.xcframework.zip
- SHA-256:79b1b8dcd6c647afc150fc33f0771ae81c3ca0c8be93a9a9fa6cce49a1776670
- SwiftPM:https://pbf.jpcn.ccwu.cc/swift/maplibre-particle-spm.git
- Exact Version:6.28.0-particle.21
- Source Commit:16a5d15f164dc93d220e3fac62de66a9c9527ccc
- Exact Version:6.29.0-particle.22
- Source Commit:ea5bd393c664a54513531998bf8609a0535639f7
构建命令固定为:

View File

@@ -1,20 +1,20 @@
{
"schemaVersion": 2,
"status": "PUBLISHED_PUBLIC_READBACK_PASS",
"distributionVersion": "6.28.0-particle.21",
"distributionVersion": "6.29.0-particle.22",
"moduleName": "MapLibre",
"compilationMode": "opt",
"artifact": {
"fileName": "MapLibre.dynamic.xcframework.zip",
"sizeBytes": 4121573,
"sha256": "fd78ed8f504c3d0ee969954f44501719b94e699aa5b160de849e712b32d24f72",
"url": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.28.0-particle.21/MapLibre.dynamic.xcframework.zip"
"sizeBytes": 4147794,
"sha256": "79b1b8dcd6c647afc150fc33f0771ae81c3ca0c8be93a9a9fa6cce49a1776670",
"url": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.22/MapLibre.dynamic.xcframework.zip"
},
"sourceCommit": "16a5d15f164dc93d220e3fac62de66a9c9527ccc",
"sourceCommit": "ea5bd393c664a54513531998bf8609a0535639f7",
"swiftPackage": {
"url": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle-spm.git",
"requirement": "exactVersion",
"version": "6.28.0-particle.21",
"version": "6.29.0-particle.22",
"productName": "MapLibre"
},
"notes": "Metal renderer optimized release built with bazel build -c opt --//:renderer=metal //platform/ios:MapLibre.dynamic"

View File

@@ -1,49 +1,49 @@
{
"schemaVersion": 2,
"releaseState": "PUBLISHED_PUBLIC_READBACK_PASS",
"particleRevision": 21,
"sourceCommit": "16a5d15f164dc93d220e3fac62de66a9c9527ccc",
"generatedAtUtc": "2026-10-08T04:32:42.009872+00:00",
"particleRevision": 22,
"sourceCommit": "ea5bd393c664a54513531998bf8609a0535639f7",
"generatedAtUtc": "2026-10-09T07:14:50.067897+00:00",
"reactNative": {
"name": "@navsea/maplibre-particle-rn",
"version": "13.4.1-particle.21",
"version": "13.6.1-particle.22",
"artifact": {
"fileName": "navsea-maplibre-particle-rn-13.4.1-particle.21.tgz",
"sizeBytes": 28965,
"sha256": "8862dda5ad03727967465edea42053c71e59485e45afe7b99ed153d5c0a27eb5",
"url": "https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.4.1-particle.21.tgz"
"fileName": "navsea-maplibre-particle-rn-13.6.1-particle.22.tgz",
"sizeBytes": 29008,
"sha256": "dcd30dd64a3d140934f8ea3a042cbac5c0450e0510c017127824d6a1a53557b5",
"url": "https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.6.1-particle.22.tgz"
},
"mapLibreReactNative": "11.3.6"
"mapLibreReactNative": "11.5.0"
},
"android": {
"version": "13.4.1-particle.21",
"coordinate": "cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.21",
"version": "13.6.1-particle.22",
"coordinate": "cc.navsea.maplibre:android-sdk-particle-opengl:13.6.1-particle.22",
"renderer": "opengl",
"artifact": {
"fileName": "android-sdk-particle-opengl-13.4.1-particle.21.aar",
"sizeBytes": 170777014,
"sha256": "59248c9a80aafa03da202a2666cfefe919090a16ae21d425370fcf8b39d0898c",
"url": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.4.1-particle.21/android-sdk-particle-opengl-13.4.1-particle.21.aar"
"fileName": "android-sdk-particle-opengl-13.6.1-particle.22.aar",
"sizeBytes": 16541912,
"sha256": "ed62a67a0882896d3d59f315351d6807941881333494590bc943a858b213a130",
"url": "https://pbf.jpcn.ccwu.cc/maven/cc/navsea/maplibre/android-sdk-particle-opengl/13.6.1-particle.22/android-sdk-particle-opengl-13.6.1-particle.22.aar"
},
"ndk": "28.2.13676358",
"gradle": "9.5.1",
"jdk": "openjdk version \"17.0.20.1\" 2026-08-18"
},
"ios": {
"distributionVersion": "6.28.0-particle.21",
"distributionVersion": "6.29.0-particle.22",
"renderer": "metal",
"compilationMode": "opt",
"moduleName": "MapLibre",
"artifact": {
"fileName": "MapLibre.dynamic.xcframework.zip",
"sizeBytes": 4121573,
"sha256": "fd78ed8f504c3d0ee969954f44501719b94e699aa5b160de849e712b32d24f72",
"url": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.28.0-particle.21/MapLibre.dynamic.xcframework.zip"
"sizeBytes": 4147794,
"sha256": "79b1b8dcd6c647afc150fc33f0771ae81c3ca0c8be93a9a9fa6cce49a1776670",
"url": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle/6.29.0-particle.22/MapLibre.dynamic.xcframework.zip"
},
"swiftPackage": {
"url": "https://pbf.jpcn.ccwu.cc/swift/maplibre-particle-spm.git",
"requirement": "exactVersion",
"version": "6.28.0-particle.21",
"version": "6.29.0-particle.22",
"productName": "MapLibre"
},
"xcode": "Xcode 26.3 Build version 17C529 ",