chore(docs): set up RTD documentation project (charmkeeper)#119
Open
chore(docs): set up RTD documentation project (charmkeeper)#119
Conversation
Move documentation from content-cache/docs/ and content-cache-backends-config/docs/ into a unified top-level docs/ directory covering both charms. - Merge content-cache-backends-config overview into docs/index.md - Unify contribute.md with updated source link pointing to docs/ - Fix stale references in README and CONTRIBUTING files Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add .readthedocs.yaml from sphinx-docs-starter-pack
- Add .github/workflows/docs_rtd.yaml RTD workflow
- Copy docs/.sphinx/, docs/reuse/, docs/_templates/ from starter pack
- Copy docs/Makefile, docs/conf.py, docs/requirements.txt, docs/.gitignore
- Configure conf.py for Content Cache Operators:
- project = 'Content Cache Operators'
- discourse, matrix, mattermost team-specific links
- github_url, product_page, source_edit_link
- juju + starter-pack intersphinx mappings
- cookie banner CSS/JS
- sphinxcontrib.mermaid extension
- Pin all requirements.txt dependencies to exact versions (myst-parser==4.0.1)
- Add docs/.custom_wordlist.txt with AI and classDef entries
- Add mermaid exclusion to docs/.sphinx/vale.ini
- Create subdirectory index pages: how-to/index.md, tutorial/index.md
- Create how-to/contribute.rst replacing contribute.md
- Add MyST anchor targets to all non-index pages
- Convert Discourse admonitions to MyST {note} directives
- Update Juju doc links to intersphinx refs where possible
- Add docs/redirects.txt (empty, satisfies sphinx-rerediraffe)
- Update .licenserc.yaml to exclude docs/**, .readthedocs.yaml, *.rst
- Add ## Documentation section to root README.md
Build: make html → success
Lint: make lint-md → 0 errors
Vale: make vale → 0 errors, 0 warnings
Items requiring human action (documented in PR description):
- Set up RTD project in app.readthedocs.com backend
- Update ogp_site_url and slug in conf.py once URL is known
- Update documentation key in metadata.yaml with RTD URL
- Verify cookie banner in browser
- Review TODO comments in docs/how-to/contribute.rst
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Test results for commit 2df0b8dTest coverage for 2df0b8d Static code analysis report |
Contributor
Test results for commit 2df0b8dTest coverage for 2df0b8d Static code analysis report |
srbouffard
approved these changes
Apr 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR sets up a Read the Docs (RTD) documentation project for the Content Cache Operators repository, based on the Canonical sphinx-docs-starter-pack.
Prep work: consolidate docs
The repository previously had documentation split across two directories:
content-cache/docs/— main charm docs (tutorial, 4 how-to guides)content-cache-backends-config/docs/— subordinate charm docs (index + contribute)These have been consolidated into a single top-level
docs/directory covering both charms:docs/index.md— unified home page (Content Cache + Backends Config overview, WIP note preserved)docs/how-to/— all how-to guides (contribute, enable-cos, enable-https, upgrade)docs/tutorial/— getting started tutorialREADME.mdandCONTRIBUTING.mdfiles updatedRTD infrastructure
.readthedocs.yamladded.github/workflows/docs_rtd.yamladded (callscanonical/operator-workflowsRTD workflow)docs/conf.pyconfigured: project name, discourse/matrix links, github_url, product_page, juju + starter-pack intersphinx mappings, cookie banner, Mermaid extensionmyst-parser==4.0.1as required)docs/.custom_wordlist.txt) and mermaid exclusion in.sphinx/vale.inidocs/how-to/contribute.rstcreated (replacescontribute.md) with AI usage policydocs/redirects.txtadded (empty, satisfies sphinx-rerediraffe).licenserc.yamlupdated to excludedocs/**,.readthedocs.yaml,*.rstREADME.mdupdated with## DocumentationsectionBuild verification
All local checks pass on this branch:
make html→ build succeeded ✅make lint-md→ 0 errors ✅make vale→ 0 errors, 0 warnings ✅Action items for humans
The following require human action outside this repository:
Set up the RTD project at app.readthedocs.com:
charmkeeper/rtd-docs-setupinitially; switch tomainafter mergePrivateduring setup,Publicwhen readyUpdate
conf.pyonce the RTD URL is known:ogp_site_urlto the RTD project URLslugto the RTD project slugUpdate
metadata.yamlin both charm directories: replace thedocs:key with the new RTD URL (once known).Review TODOs in
docs/how-to/contribute.rst(links to CONTRIBUTING.md, RTD URL).Verify the cookie banner in a browser:
Open in an incognito window and confirm the consent banner works.
Run remaining quality checks before merging:
Note: The tutorial contains a link to
juju.is/docs/juju/set-up--tear-down-your-test-environment(old URL) marked with a TODO comment — a human should verify the correct intersphinx target.Post-merge:
maincanonical-repo-automationif applicable