Set up Sphinx Documentation Infrastructure
@erikrose 已经在做这个了。
开始于 2026年4月8日。
评估
这个 Issue 还没有评估数据。
描述
Overview
Set up Sphinx-based documentation infrastructure for the Fastly Compute Python SDK, enabling auto-generated API documentation from docstrings. This issue focuses on getting docs to generate consistently - hosting location and styling are out of scope.
Goals
- Configure Sphinx with autodoc - Generate API docs from code
- Standardize docstring format - Convert all docstrings to Sphinx RST style (
:param:,:returns:,:raises:) - Build infrastructure - Add
make docsand CI validation - Fix inconsistencies - Some modules use Google style (
Args:), others use RST style
Out of Scope:
- Documentation hosting platform (Read the Docs, GitHub Pages, etc.)
- Documentation styling/theming
- Hosting deployment configuration
Current State
Inconsistent docstring formats:
- ✅
config_store.py,erl.py- Use Sphinx RST style (:param:,:raises:,Example::) - ❌
requests/__init__.py- Uses Google style (Args:,Raises:,Note:) - ❌ Test files - Mixed styles
RST format example (preferred):
def get(self, key: str, default: str | None = None) -> str | None:
"""Get a configuration value.
:param key: The configuration key
:param default: Default value if key not found
:return: Configuration value or default if not found
:raises ~fastly_compute.exceptions.types.error.InvalidArgument: If the key is invalid
Example::
config = ConfigStore.open("app-config")
api_url = config.get("api_url", "https://api.example.com")
"""
Tasks
-
Sphinx Setup
- Install Sphinx and autodoc extension
- Create
docs/directory withconf.py,index.rst - Configure autodoc to generate API reference from
fastly_compute/modules - Add intersphinx for cross-references to Python stdlib
-
Standardize Docstrings
- Convert
requests/module docstrings from Google style to RST style - Audit all other modules for consistency
- Update any remaining Google-style docstrings to RST format
- Use full exception paths in
:raises:(e.g.,~fastly_compute.exceptions.types.error.InvalidArgument)
- Convert
-
Build Process
- Add
make docstarget to build HTML documentation - Configure Sphinx to fail on warnings (ensure all docstrings are valid RST)
- Add CI check to validate docs build successfully
- Add
-
Documentation Standards Guide
- Document the RST format convention in contributing guide
- Provide examples for common patterns (module docstrings, class docstrings, method docstrings)
- Reference
config_store.pyanderl.pyas canonical examples
Acceptance Criteria
- Sphinx generates HTML documentation without warnings
- All modules use consistent RST docstring format
-
make docsbuilds complete API reference - CI validates documentation builds successfully
- Contributing guide documents RST format requirements
Cross-SDK Comparison: Rust uses rustdoc, Go uses godoc, JS uses JSDoc/TypeScript. Python ecosystem standard is Sphinx with RST docstrings, which integrates well with IDEs and type checkers.
Reference
- Sphinx Documentation
- Read the Docs
- Existing docstring examples in
fastly_compute/config_store.pyandfastly_compute/erl.py
- 主要语言
- Python
- 星标
- 5
- 派生
- 1
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
fastly/compute-sdk-python 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
fastly/compute-sdk-python#116 ·
-
难度 4/5 3-5 天 新手友好度 35/100
fastly/compute-sdk-python#98 ·
-
难度 5/5 一周以上 新手友好度 35/100
fastly/compute-sdk-python#74 ·
-
难度 5/5 一周以上 新手友好度 35/100
fastly/compute-sdk-python#61 ·
-
难度 4/5 3-5 天 新手友好度 45/100
fastly/compute-sdk-python#59 ·
查看 fastly/compute-sdk-python 的全部 Issue
相似的 Issue
-
area: harness bug status: needs-triage
难度 2/5 1-3 小时 新手友好度 75/100
Human-Agent-Society/reef#625 ·
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 1/5 1 小时以内 新手友好度 80/100
learningequality/kolibri#15351 · 2 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
-
Name consistency 未关闭
难度 2/5 1-3 小时 新手友好度 75/100
eellak/triplestore#65 · 1 条评论 ·