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 docs and 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):
defget(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 with conf.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)
Build Process
- Add
make docs target to build HTML documentation - Configure Sphinx to fail on warnings (ensure all docstrings are valid RST)
- Add CI check to validate docs build successfully
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.py and erl.py as canonical examples
Acceptance Criteria
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
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
:param:,:returns:,:raises:)make docsand CI validationArgs:), others use RST styleOut of Scope:
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:)RST format example (preferred):
Tasks
Sphinx Setup
docs/directory withconf.py,index.rstfastly_compute/modulesStandardize Docstrings
requests/module docstrings from Google style to RST style:raises:(e.g.,~fastly_compute.exceptions.types.error.InvalidArgument)Build Process
make docstarget to build HTML documentationDocumentation Standards Guide
config_store.pyanderl.pyas canonical examplesAcceptance Criteria
make docsbuilds complete API referenceCross-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
fastly_compute/config_store.pyandfastly_compute/erl.py