生态第三方包第三方库编写指南

第三方库编写指南

为言序生态设计、实现、验证并发布一个可长期维护的第三方库。

一个可发布的言序库不只是若干能运行的文卷。它还要有可复现的依赖图、明确的权限与安全 边界、稳定的公开 API、跨执行器测试、独立消费者,以及能从公开标签重新得到相同结果的 发布流程。

本指南把现有 21 个稳定库的共同发布门禁整理为社区作者可执行的规范。这些库最终在言序 1.1.12 上共同完成锁定、检查、源码执行和 Release 构建;当前言包仍通过言序的版本化工程 协议读写格式 2 清单。你可以声明更低的最低言序版本,但必须用那个版本单独通过同一组门禁。

开始前确认工具

yanbao
yanxu 版本 --json
yanbao

yanbao --help列出的当前命令负责工程工作流;yanxu --help列出的命令是核心检查、VM、 包协议和 API 文档入口。发布文档只应使用这两份帮助中真实存在的命令。当前言包没有 publish发布命令:源码包以 Git 标签分发,发布说明与额外制品由 GitHub Release 承载。

先判断是否值得成为库

适合独立发布的选题通常满足至少一项:提供可复用协议或数据结构、封装清晰的外部系统、 把安全策略固化为 API,或解决多个项目都需要的工程问题。只服务一个应用、没有稳定公共 边界的代码,先留在应用内部通常更合适。

立项前检查已有包,记录你的差异:支持范围、资源限制、错误协议、权限成本和维护承诺。 不要只换一个名字重复已有能力,也不要使用会让社区误以为官方维护的名称或说明。

名称分三层

层级示例约定
仓库yanxu-exampleGitHub 上使用小写英文和连字符,便于发现
包名言例言序.toml中的稳定身份,也是默认导入名
依赖别名言例由消费者清单决定,可与实际包名不同

包名只能包含文字、数字、_-.,且不能以.-开头。发布后改包名相当于更换 包身份,应按破坏性迁移处理。仓库名、包名和导出模块的对应关系要在 README 第一段说清楚。

从想法到稳定版

  1. 项目结构与清单中创建格式 2 工程, 收紧依赖和权限。
  2. API 与错误设计固定中文公开面、结构化错误 和资源预算。
  3. 测试与持续集成覆盖规格、示例、基准、 最低工具链、独立消费者和声称支持的平台。
  4. 版本与发布准备 SemVer、更新记录、普通 merge PR、附注标签和 GitHub Release。
  5. 发布前逐项满足硬性要求

先做窄而完整的 0.x,再承诺 1.0 稳定面。版本号不是成熟度装饰:一旦发布 1.0,同一主版本 内的函数名、参数顺序、返回形状、数据字段和稳定错误代码都成为兼容承诺。