release: prepare MapLibre Particle Android v1 package
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-09 10:47:18 +08:00
parent 3664db0770
commit 17774373d0
28 changed files with 691 additions and 15 deletions

View File

@@ -0,0 +1,27 @@
# MapLibre 粒子 Android 发布与 React Native 包设计 v1
## 版本与坐标
真实基础为 MapLibre Native Android `13.4.1`,共同 core commit 为 `18545ca10d296704b2cba675b182ff2c8da24588`,本发行只准备 Android OpenGL。正式规则为 `<上游版本>-particle.<修订号>`;首发为 `13.4.1-particle.1`。正式 npm 包为 `@navsea/maplibre-particle-rn@13.4.1-particle.1`,正式 Maven 坐标为 `cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.1`。
`step061` 是已经完成验证的开发阶段制品编号,不是正式发行版本。release manifest 是 `release/maplibre-particle/release-manifest.json`;registry URL 暂不决定,manifest 中 npm/Maven server 字段均为 null。
## Consumer 依赖关系
```text
Consumer
↓ 直接安装
@navsea/maplibre-particle-rn
↓ 唯一 MapLibre RN native module
@maplibre/maplibre-react-native 11.3.6
↓ Gradle dependency substitution
cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.1
```
正式包 re-export 已有 MLRN `Map`、`Camera` 等公共 API,并包含 WeatherRuntime TurboModule。它不是 MLRN 的完整 fork;`@maplibre/maplibre-react-native` 是正式包的内部依赖,而 Consumer 不应再直接安装第二份 MLRN。package plugin 把 MLRN 唯一的 `org.maplibre.gl:android-sdk-opengl` 请求替换为正式 NavSea AAR,避免官方 AAR 与 Particle AAR 同时进入 APK。
WeatherColorLayer 与 RasterParticleLayer 是 Core-only style layer,不是 React 组件;包公开 `createParticleWeatherStyle()` 和稳定 IDs 以声明样式。field 仍只经既有 `metadataJson + local file:// payload → WeatherRuntime → RasterArraySource::submitHostField()` 进入 Native/Core;不创建第二套 ingress、Timeline 或 Runtime Window。
## 发布与升级边界
Consumer 不编译 MapLibre Native 源码,也不使用 workspace、relative source path、CMake path 或软链接。registry 未决定时,`.tgz` 与 Maven Local/临时 staging 只用于预发布验证,不是最终部署决定。未来升级到新的上游版本时,按 `13.5.0-particle.1` 等新发行线重新完成 Native、tarball Consumer 和 APK 验证;通过后才单独创建 release tag。