Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Set up Sphinx Documentation Infrastructure

Open
#60 0 comments 0 reactions 1 assignee View on GitHub

@erikrose is already working on this.

Since Apr 8, 2026.

Assessment

This issue has not been assessed yet.

Description

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

  1. Configure Sphinx with autodoc - Generate API docs from code
  2. Standardize docstring format - Convert all docstrings to Sphinx RST style (:param:, :returns:, :raises:)
  3. Build infrastructure - Add make docs and CI validation
  4. 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

  1. 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
  2. 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)
  3. 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
  4. 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

  • Sphinx generates HTML documentation without warnings
  • All modules use consistent RST docstring format
  • make docs builds 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

Dominant language
Python
Stars
5
Forks
1
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fastly/compute-sdk-python

All issues in fastly/compute-sdk-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.