Skip to content

Add rendered documentation site (ReadTheDocs or GitHub Pages) #108

Description

@codeforester

Problem

base-cli has extensive documentation in docs/:

  • api-stability.md — compatibility contract and deprecation policy
  • adopter-readiness.md — production adoption checklist
  • json-contracts.md — versioned JSON output contract
  • output-contracts.md — output rendering rules
  • typer-adapter.md — Typer migration guide
  • security-threat-model.md and security-review.md
  • migrations.md — breaking change migration notes
  • platform-support.md — OS and Python version matrix
  • integrations.md — Rich and OpenTelemetry opt-in
  • cache-ownership-and-layout.md — runtime layout
  • consumer-profiles.md — profile authoring guide
  • extensions.md — extension and plugin system
  • performance.md, local-config.md, releasing.md

All of this exists only as Markdown files navigable through GitHub. For a PyPI package, potential adopters expect a rendered documentation site reachable from the PyPI page (project.urlsDocumentation).

Without a rendered site:

  • The PyPI page has no Documentation link (or it points to the GitHub repo, which isn't the same).
  • Search engines don't index the content as a coherent documentation site.
  • Users reading the README are linked to .md files via relative paths — these work on GitHub but not when the README is rendered on PyPI.
  • The docs/api-stability.md URL pattern doesn't resolve to anything for users who install via pip.

Proposed fix

Set up a documentation site using MkDocs or Sphinx with ReadTheDocs (or GitHub Pages):

  1. Add mkdocs.yml (or docs/conf.py for Sphinx) configuring the navigation from the existing docs/ files.
  2. Add a docs URL to pyproject.toml:
    [project.urls]
    Documentation = "https://base-cli.readthedocs.io"
  3. Add a .readthedocs.yaml configuration file.
  4. Register the project on ReadTheDocs (or configure GitHub Pages in the repository settings).

The docs/releasing.md file already documents the release process — it should be included in the rendered site so it's discoverable without knowing the repo structure.

Acceptance criteria

  • pip show base-cli includes a Documentation URL that resolves to a rendered site.
  • The rendered site includes the API stability policy, adopter readiness guide, migration notes, and JSON contract documentation.
  • README relative links (e.g., [docs/api-stability.md](docs/api-stability.md)) either resolve correctly in both GitHub and the docs site, or are updated to use absolute URLs.

Metadata

Metadata

Assignees

Labels

documentationDocumentation improvements

Type

No type

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions