Skip to content

Restore the Read the Docs build and refresh the docs - #36

Merged
gouwens merged 1 commit into
mainfrom
worktree-docs-update
Aug 31, 2026
Merged

gouwens merged 1 commit into
mainfrom
worktree-docs-update

Conversation

@gouwens

@gouwens gouwens commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

The hosted docs at https://ccf-streamlines.readthedocs.io are not rebuilding.
.readthedocs.yaml has asked for build.os: ubuntu-20.04 since October 2022,
and Read the Docs removed that image on 2026-06-01,
so the build now fails before Sphinx starts. The published site is serving a
snapshot old enough to predate the Glossary page.

Build

  • ubuntu-24.04 / Python 3.12. The docs build does not install the package
    (conf.py mocks the third-party imports and regex-scrapes the version out of
    pyproject.toml), so this interpreter is independent of the requires-python
    floor in pyproject.toml.
  • docs/requirements.txt moves to Sphinx 9.1.0 / pydata-sphinx-theme 0.21.0.
    The old pins could not simply be carried forward: Sphinx 5.2.3 imports
    imghdr, which Python 3.13 removed.
  • sphinx.fail_on_warning: true, now that the build is warning-free. Dropping
    html_static_path (the tree keeps no _static directory) removed the only
    warning.

Content

Found by checking each page against the current code and by running
sphinx-build -b linkcheck:

  • The first Isocortex2dProjector example was missing a comma after
    hemisphere="both", so copying it out of the guide raised a SyntaxError.
    The coordinate projector example asked for flatmap_buttefly.h5.
  • The CCF white paper link redirected to a forum category page. It now points at
    the 2017 technical white paper, verified to contain the passage the guide
    quotes and the Figure 4 that ccf_whitepaper_figure_4.png shows.
  • New Installation section: the docs never said pip install ccf-streamlines,
    that imports are by submodule, or that the reference files are downloaded
    separately.
  • reference/processing.rst was titled ccf_streamlines.projection.
  • Allen download links upgraded to https (they permanently redirect there), plus
    three prose typos.

linkcheck is clean apart from cell.com, which answers every non-browser client
with a 403; that is recorded in linkcheck_ignore with the reason.

Checks

  • sphinx-build -b html -W --keep-going on Python 3.12 with the new pins:
    build succeeded, no warnings.
  • uv run pytest: 366 passed, 36 skipped.

🤖 Generated with Claude Code

Read the Docs removed the ubuntu-20.04 build image on 2026-06-01, and
.readthedocs.yaml had asked for it since 2022, so the hosted docs stop
building before Sphinx runs. Move to ubuntu-24.04 on Python 3.12, which
also needs newer docs pins: Sphinx 5.2.3 imports the imghdr module that
Python 3.13 removed. The build does not install the package - conf.py
mocks the third-party imports and scrapes the version out of
pyproject.toml - so the interpreter here is independent of the
requires-python floor.

The build is warning-free against those pins, so turn on
sphinx.fail_on_warning: a new warning means a cross-reference or an
object name has drifted, and it should fail rather than land silently.
Dropping html_static_path removes the one warning that stood in the way,
since the tree keeps no _static directory.

Content fixes found while checking the pages against the code:

- The first Isocortex2dProjector example was missing a comma after
  hemisphere="both", so copying it raised a SyntaxError, and the
  coordinate projector example passed "flatmap_buttefly.h5".
- The CCF white paper link 404ed into a forum category page. Repoint it
  at the 2017 technical white paper, confirmed to be the document the
  guide quotes and the source of the Figure 4 image.
- Add an Installation section; the docs never said how to install the
  package or that the reference files come separately.
- Upgrade the Allen download links to https, which they redirect to
  anyway, and fix three prose typos.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gouwens
gouwens marked this pull request as ready for review August 31, 2026 23:06
@gouwens
gouwens merged commit 4a46274 into main Aug 31, 2026
4 checks passed
gouwens added a commit that referenced this pull request Aug 31, 2026
PR #36 landed while this branch was in flight and touched two files it also
changes.

docs/source/conf.py conflicted twice. Both were main's content against this
branch's reformatting, and both resolve to main's content with the formatter
re-run over it. The second one mattered: main deliberately removed
`html_static_path`, because pointing it at a `_static` directory the tree does
not have was the docs build's only warning, and .readthedocs.yaml builds with
`fail_on_warning: true`. Taking this branch's side would have reinstated the
line and broken the RTD build.

CLAUDE.md conflicted twice as well:

- The Commands block. This branch was cut before #36 corrected the Sphinx
  version, so merging its side verbatim would have reverted `sphinx 9.1.0`
  back to `5.2.3`. Kept main's line, added the two ruff commands.
- The Gotchas list. Kept main's new Read the Docs entry and this branch's note
  about the one `# noqa: E402`. Dropped the dead-imports entry, which this
  branch made obsolete by removing those imports, and the processing.rst
  heading entry, which #36 fixed and removed the claim for.

Merged tree verified: ruff check clean, 38 files already formatted, 366
passed / 36 skipped, and conf.py still scrapes version 1.2.0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant