跳转至

Package README 编写指南

Date: 2024-10-24\ Author: GitHub Copilot\ Summary: Package README 编写指南和质量检查工具使用说明


一、概述

本文档定义了 SAGE 项目中各包 README 的标准格式和质量要求。

二、README 模板

标准模板位于:packages/sage-tools/src/sage/tools/templates/PACKAGE_README_TEMPLATE.md

2.1 必需章节(Required Sections)

所有包的 README 必须包含以下章节:

  1. Title (# Package Name)

  2. 包名称(使用完整名称,如 "SAGE Kernel")

  3. 简短描述(一句话说明包的用途)

  4. Overview (## 📋 Overview)

  5. 包的详细介绍

  6. 主要用途和应用场景
  7. 与其他包的关系

  8. Installation (## 🚀 Installation)

  9. 基础安装方法

  10. 开发安装方法
  11. 可选依赖说明

  12. Quick Start (## 📖 Quick Start)

  13. 基础使用示例(代码块)

  14. 常见用例
  15. 最简配置

  16. License (## 📄 License)

  17. 许可证说明

  18. 指向项目根目录的 LICENSE 文件

建议包含以下章节以提高文档质量:

  1. Features (## ✨ Key Features)

  2. 核心功能列表

  3. 每个功能的简短说明

  4. Package Structure (## 📦 Package Structure)

  5. 目录结构图

  6. 主要模块说明

  7. Configuration (## 🔧 Configuration)

  8. 配置方法(环境变量、配置文件等)

  9. 配置示例
  10. 常用配置项说明

  11. Documentation (## 📚 Documentation)

  12. 用户指南链接

  13. API 文档链接
  14. 示例代码链接

  15. Testing (## 🧪 Testing)

  16. 如何运行测试

  17. 测试覆盖率
  18. 测试命令示例

  19. Contributing (## 🤝 Contributing)

  20. 指向 CONTRIBUTING.md

  21. 简要贡献指南

2.3 可选章节(Optional Sections)

根据包的特点,可以添加:

  • Related Packages: 相关包列表
  • Support: 支持渠道(Issues, Discussions 等)
  • Architecture: 架构说明(如果复杂)
  • Performance: 性能说明(如果相关)
  • Migration Guide: 迁移指南(主要版本升级时)

三、编写规范

3.1 标题规范

  • H1 标题 (#): 仅用于包名称,每个文件只有一个
  • H2 标题 (##): 用于主要章节
  • H3 标题 (###): 用于子章节
  • 使用 emoji: 推荐在 H2 标题前使用 emoji 图标,增强可读性

3.2 代码示例规范

# ✅ 好的示例:完整、可运行
from sage.kernel import Function

@Function
def my_function(x: int) -> int:
    return x * 2

result = my_function(5)
print(result)  # 输出: 10
# ❌ 不好的示例:不完整、不可运行
obj = SomeClass()  # 没有 import 语句
result = obj.process()  # 没有参数说明

3.3 链接规范

  • 相对链接: 使用相对路径链接项目内文件
[CONTRIBUTING.md](../../../CONTRIBUTING.md)
[LICENSE](../../../LICENSE)
  • 文档链接: 使用完整 URL 链接到 docs-public
[User Guide](https://intellistream.github.io/SAGE-Pub/guides/packages/sage-kernel/)

3.4 徽章(Badges)规范

推荐添加以下徽章:

[![Python Version](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](../../LICENSE)

可选徽章:

  • PyPI 版本(发布后)
  • 测试状态
  • 代码覆盖率
  • 文档状态

四、质量检查工具

4.1 自动检查工具

位置:sage-dev check-readme

使用方法

# 检查所有包
sage-dev check-readme --all

# 检查特定包
sage-dev check-readme --package sage-kernel

# 生成详细报告
sage-dev check-readme --all --report --output report.md

评分标准

  • 100-80 分 ✅: 优秀 - 包含所有必需和推荐章节
  • 79-60 分 ⚠️: 良好 - 包含所有必需章节,缺少部分推荐章节
  • 59-0 分 ❌: 需改进 - 缺少必需章节

评分计算:

  • 必需章节:70% 权重
  • 推荐章节:30% 权重

4.2 检查项目

工具会检查:

  1. 章节完整性

  2. 所有必需章节是否存在

  3. 推荐章节是否存在

  4. 内容质量

  5. 是否包含代码示例

  6. 是否有占位符文本(如 {PACKAGE_NAME}
  7. 是否有状态徽章

  8. 格式规范

  9. 标题格式是否正确

  10. Markdown 语法是否规范

4.3 当前状态

根据最新检查(2024-10-24):

包名 分数 状态 主要问题
sage-tools 90.0 缺少 Overview 章节
sage-libs 90.0 缺少部分必需章节
sage-studio 90.0 缺少部分必需章节
sage-apps 90.0 缺少 Quick Start
sage-platform 71.0 ⚠️ 缺少 Quick Start
sage-common 71.0 ⚠️ 缺少多个必需章节
sage-kernel 71.0 ⚠️ 缺少多个必需章节
sage-middleware 71.0 ⚠️ 缺少多个必需章节
sage-benchmark 57.0 缺少 Overview 和 Quick Start

平均分数: 77.9/100

五、改进流程

5.1 对于新包

  1. 复制模板:
cp packages/sage-tools/src/sage/tools/templates/PACKAGE_README_TEMPLATE.md packages/your-package/README.md
  1. 替换占位符:

  2. {PACKAGE_NAME}: 包的完整名称

  3. {BRIEF_DESCRIPTION}: 简短描述
  4. {module_name}: Python 模块名
  5. 其他 {...} 占位符

  6. 填写内容:

  7. 按模板结构填写每个章节

  8. 确保代码示例可运行
  9. 添加真实的配置示例

  10. 运行检查:

sage-dev check-readme --package your-package

5.2 对于现有包

  1. 运行检查工具识别问题:
sage-dev check-readme --package sage-kernel
  1. 根据报告逐项修复:

  2. 添加缺失的必需章节

  3. 补充推荐章节
  4. 改进代码示例
  5. 添加徽章

  6. 重新检查确认改进:

sage-dev check-readme --package sage-kernel

5.3 持续改进

  • 定期检查: 每次重大更新后运行检查
  • 版本同步: 功能变更时更新 README
  • 用户反馈: 根据用户问题改进文档
  • 示例更新: 保持代码示例与最新 API 一致

六、集成到 CI/CD

6.1 Pre-commit Hook

可以将 README 检查添加到 pre-commit hook:

# .pre-commit-config.yaml
- repo: local
  hooks:
    - id: check-package-readme
      name: Check Package README Quality
      entry: sage-dev check-readme --all
      language: system
      pass_filenames: false

6.2 GitHub Actions

在 CI workflow 中添加检查:

# .github/workflows/ci.yml
- name: Check Package README Quality
  run: |
    sage-dev check-readme --all --report

七、最佳实践

7.1 写作建议

  1. 简洁明了: 每个章节直奔主题
  2. 用户视角: 从使用者角度编写
  3. 实例优先: 用代码示例说明
  4. 循序渐进: 从简单到复杂

7.2 常见问题

Q: 为什么我的包需要 Overview 章节? A: Overview 帮助用户快速了解包的用途和价值,是文档的入口。

Q: Quick Start 和 Installation 有什么区别? A: Installation 说明如何安装,Quick Start 展示如何使用。

Q: 必须使用 emoji 吗? A: 不是必需的,但推荐使用,可以提高可读性。

Q: 代码示例必须完整吗? A: 是的,所有代码示例应该可以直接复制运行。

八、参考资源

  • 模板文件: packages/sage-tools/src/sage/tools/templates/PACKAGE_README_TEMPLATE.md
  • 检查工具: sage-dev check-readme
  • 质量报告: docs/dev-notes/ci-cd/PACKAGE_README_QUALITY_REPORT.md
  • 示例 README: 查看 sage-toolssage-apps 的 README

九、更新记录

  • 2024-10-24: 初始版本,添加模板和检查工具
  • 当前平均质量分数: 77.9/100
  • 目标: 所有包达到 80+ 分

维护者: SAGE Team\ 最后更新: 2024-10-24\ 下次审查: 2024-11-24 (每月审查一次)