版本发布与 crates.io
包名是 async-geotiff,Rust 导入名是 async_geotiff。0.13.0 为首次 crates.io
分发做准备;旧 GitHub Release 仍提供源码包。GitHub 仓库公开并不会自动发布 crate,
Cargo 会单独上传 .crate 归档。
打包范围
Cargo.toml 明确列出包含内容:核心源码、examples 及 HTML 查看器、tests 和小型
可重建 fixture、重采样基准、Cargo 清单、README、变更日志和 MIT 许可
全文。测试与 fixture 一起保留,因为单元测试和示例会嵌入 fixture 字节。
website、脚本、Agent 指令、本地影像和生成报告不进入注册表包。
benches/resampler_bench.rs 有六组有效的重采样核对照,因此保留。
scripts/run_load_audit.py 测量本地有界延迟和峰值 RSS,在 Git 中保留,默认结果
写入忽略的 target/load-audit/。历史审查与机器实测可在截至 7170204 的 Git
历史中查阅,不再放在当前源代码树中。复现见本地负载测量。
发布前验证
更新 Cargo.toml、Cargo.lock、变更日志和中英文网站。按 AGENTS.md 跑五组
feature 的全目标与文档测试,以及 viewer 和严格 Hugo 构建,然后检查实际注册表包:
归档位于 target/package/。提交前本地预览可加 --allow-dirty,正式发布不加。
docs.rs 构建关闭默认 feature,避免要求原生 PROJ,同时生成 mosaic、STAC 和编码器
文档;应用使用本库时仍有正常的默认 feature。
发布
验证后提交发布改动,推送与版本号一致的标签:
Release workflow 会校验标签、安装原生构建依赖、运行测试、验证归档,并把归档
附到 GitHub Release。成功后将同一提交的文档部署到 Cloudflare Pages。
单独推送标签不会上传 crates.io。
上传注册表需要已验证邮箱的 crates.io 账号和有权发布该 crate 的 token:
也可以设置仓库 secret CARGO_REGISTRY_TOKEN,在 GitHub Actions 的 Release
workflow 选择对应的版本标签并勾选 publish_to_crates_io。它会重新验证再上传。
不要把 token 放进命令参数、日志或提交文件。
已发布版本不能覆盖,应在上传前核实归档和版本号。详见 Cargo 发布指南。
从 0.12 升级
Raster Style 保持 SDK 0.4.0/协议 3.0/Q3。自定义 STAC 客户端应把已构建客户端的
with_http_client 改成 with_http_client_builder,传入配置好的 reqwest 0.11
ClientBuilder;旧入口返回错误。认证与重定向契约见镶嵌指南。
此版本还修正独立 mask 网格、极区覆盖、Alpha 点查询、精确网格 CubicSpline、极端
有限值重采样、histogram 计数及示例服务配置传递。