感谢你帮助改进开放阅读书源协议。
提出协议变更前,请先阅读 GOVERNANCE.zh-CN.md。ORSP 优先保证不同 团队独立开发的阅读器和书源能够互操作,因此“功能有用”并不代表它一定适合进入核心协议。
实现经验非常重要。反馈时请说明:
- 你实现的是书源、阅读器、适配器、目录还是测试工具;
- 使用的语言和框架;
- 测试的协议版本与能力;
- 哪些行为存在歧义或在不同实现之间表现不同;
- 在可能时提供最小请求和响应示例。
请创建协议 Issue,并说明:
- 阅读器或书源开发者面临的问题;
- 当前协议或命名空间扩展为什么无法解决;
- 建议的请求、响应和能力结构;
- 向后兼容和向前兼容影响;
- 安全、隐私、无障碍和版权影响;
- 迁移和废弃方式;
- 实现与测试证据。
协议变更必须在同一个 PR 中同步更新规范、OpenAPI、相关 JSON Schema、示例和一致性测试。
- 次版本只能增加可选字段和可选行为;
- 同一主版本内不得改变已有字段和接口的含义;
- 实现必须忽略任意嵌套层级的未知 JSON 对象字段;
- 实现必须忽略未知的可选能力标识;
- 扩展能力使用
反向域名:名称,不得使用保留的orsp命名空间; - 缺失和
null不同,除非明确声明,否则null不合法; - 不兼容变更需要新的主版本和迁移文档。
dart format --output=none --set-exit-if-changed \
examples/dart_server.dart tool/conformance_test.dart
dart analyze examples/dart_server.dart tool/conformance_test.dart
dart run tool/conformance_test.dart
python -m pip install jsonschema pyyaml openapi-spec-validator
python scripts/validate_contracts.py
python scripts/registry_tool.py validate
python scripts/registry_tool.py build --check
python scripts/test_registry_tool.pyCI 会运行相同检查。仅确认 JSON 或 YAML 语法正确不能证明协议兼容。
本仓库不接受书源收录投稿。Registry Schema 与工具仅作为独立社区可复用的参考实现维护, 详见 registry/README.zh-CN.md。
提交贡献即表示你同意使用本仓库的 MIT 许可证授权该贡献。