Skip to content

docs: link the zarr-http-server docs site, and fix dead links across subpackage READMEs - #287

Open
d-v-b wants to merge 3 commits into
mainfrom
claude/http-server-readme-slim
Open

docs: link the zarr-http-server docs site, and fix dead links across subpackage READMEs#287
d-v-b wants to merge 3 commits into
mainfrom
claude/http-server-readme-slim

Conversation

@d-v-b

@d-v-b d-v-b commented Aug 12, 2026

Copy link
Copy Markdown
Owner

🤖 AI text below 🤖

Adds the Read the Docs link to the zarr-http-server README, rebalances README vs docs site to match the sibling packages, and fixes two dead links found by checking every URL across all three subpackages.

Why the rebalance

The README was 405 lines while the docs site was a 58-line scaffold — inverted relative to its siblings, and with no link to the site at all:

README docs/index.md
zarr-metadata 134 98
zarr-indexing 52 53
zarr-http-server (before) 405 58
zarr-http-server (after) 71 71 + 393 (guide)

Documentation: <https://zarr-http-server.readthedocs.io/> now sits at the top, where both siblings put theirs.

The detailed sections became docs/guide.md: building apps, running them, serving several nodes, notebooks, Uvicorn configuration, CORS, byte ranges, read-only serving, writes, shutdown. Nothing was dropped — the README keeps what someone skimming PyPI needs: what it is, install, a quick start, the build/run split, and the warning that store_app filters nothing.

Dead links fixed

Found by checking every URL in all three packages' READMEs and docs, not just the file being edited:

  • zarr-metadata's Documentation: link 404s. It points at readthedocs.io/en/stable/, and neither zarr-metadata nor zarr-indexing has a stable version. Dropped the version segment so it matches the other two and lets Read the Docs redirect to the default.
  • www.uvicorn.org no longer resolves at all — the domain is gone, so it fails DNS rather than returning a 404, which is why it survives most link checkers. Uvicorn's own PyPI metadata now gives https://uvicorn.dev/. Fixed in the two places it appeared.

Accuracy fixes, not moved verbatim

Reviewing before moving turned up several things that were wrong:

  • docs/index.md paired store_app with serve and node_app with serve_background as though they were coupled. They are independent — either app runs under either runner. Collateral from the serve_store/serve_nodeserve/serve_background rename.
  • docs/index.md sent readers to the README for worked examples. Backwards now, and would have been a loop.
  • The range section cited RFC 7233, obsoleted by RFC 9110, while the rest of the same section cited 9110.
  • Write examples used a bare methods={"GET", "PUT"} although the read-only section a few paragraphs earlier introduced READ_WRITE_HTTP_METHODS for exactly that.
  • "Read-only serving" and "Write support" restated each other; merged.
  • The API reference documented 8 of 13 public names. Added ReadOnlyHTTPMethod, READ_ONLY_HTTP_METHODS, READ_WRITE_HTTP_METHODS, AUTO_PORT, DEFAULT_PORT. The missing ReadOnlyHTTPMethod was also breaking a cross-reference from the new guide, which --strict caught.

Claims that were kept got re-verified against the code — DEFAULT_MAX_BODY_SIZE is 256 MiB, PUT within the cap returns 204 and over it 413, an unsupported method raises ValueError at construction.

Link form

Deep links use /en/latest/, verified to resolve against an existing page. /en/stable/ was avoided precisely because it is what broke zarr-metadata.

Verification

just check passes: ruff, mypy, 212 tests, and a --strict docs build with the new page in the nav. Every link in all three READMEs and docs trees resolves, except this PR's own links to the not-yet-published guide page, which resolve once the site rebuilds.

The README was 405 lines while the docs site was a 58-line scaffold --
inverted relative to the sibling packages, whose READMEs run 52-134 lines
with the substance on Read the Docs. It also had no link to the site,
which now exists.

Adds `Documentation: <https://zarr-http-server.readthedocs.io/>` at the
top, matching where zarr-metadata and zarr-indexing put theirs, and moves
the detailed sections into a new docs/guide.md: building apps, running
them, several nodes, notebooks, Uvicorn configuration, CORS, byte ranges,
read-only serving, writes and shutdown. The README keeps what a reader
skimming PyPI needs -- what it is, install, a quick start, the build/run
split, and the warning that store_app filters nothing.

Fixes found while reviewing rather than moved verbatim:

- docs/index.md paired store_app with serve and node_app with
  serve_background as though they were coupled. They are independent;
  either app runs under either runner.
- docs/index.md sent readers to the README for worked examples, which is
  backwards now and would have been a loop.
- The range section cited RFC 7233, obsoleted by RFC 9110, while the rest
  of the same section cited 9110.
- Write examples used a bare `methods={"GET", "PUT"}` although the
  read-only section a few paragraphs earlier introduced
  READ_WRITE_HTTP_METHODS for exactly that.
- "Read-only serving" and "Write support" restated each other; merged.
- The API reference documented 8 of the 13 public names. Added
  ReadOnlyHTTPMethod, READ_ONLY_HTTP_METHODS, READ_WRITE_HTTP_METHODS,
  AUTO_PORT and DEFAULT_PORT -- the missing ReadOnlyHTTPMethod was also
  breaking a cross-reference from the new guide.

Deep links use /en/latest/ rather than /en/stable/: verified to resolve,
and it picks up this change as soon as the site rebuilds. (zarr-metadata's
README links /en/stable/, which currently 404s.)

Assisted-by: ClaudeCode:claude-opus-5
Two broken links found by checking every URL in all three packages'
READMEs and docs rather than only the one being edited.

zarr-metadata's `Documentation:` link pointed at
readthedocs.io/en/stable/, which 404s -- neither it nor zarr-indexing has
a `stable` version. Dropped the version segment so it matches the other
two and lets Read the Docs redirect to whatever the default is.

`www.uvicorn.org` no longer resolves at all: the domain is gone, not
merely moved, so it fails DNS rather than returning a 404. Uvicorn's own
PyPI metadata now gives `https://uvicorn.dev/` as its homepage. Fixed in
the zarr-http-server README and docs index, the only two places it
appeared.

Every other link in the three READMEs and their docs trees resolves. The
two remaining 404s are this PR's own links to the not-yet-published
guide page, which resolve once the site rebuilds.

Assisted-by: ClaudeCode:claude-opus-5
@d-v-b d-v-b changed the title docs(zarr-http-server): link the docs site and move the detail into it docs: link the zarr-http-server docs site, and fix dead links across subpackage READMEs Aug 12, 2026
d-v-b added a commit that referenced this pull request Aug 12, 2026
…subpackage READMEs - #287 (zarr-developers#4253)

* docs(http-server): link the docs site and move the detail into it

The README was 405 lines while the docs site was a 58-line scaffold --
inverted relative to the sibling packages, whose READMEs run 52-134 lines
with the substance on Read the Docs. It also had no link to the site,
which now exists.

Adds `Documentation: <https://zarr-http-server.readthedocs.io/>` at the
top, matching where zarr-metadata and zarr-indexing put theirs, and moves
the detailed sections into a new docs/guide.md: building apps, running
them, several nodes, notebooks, Uvicorn configuration, CORS, byte ranges,
read-only serving, writes and shutdown. The README keeps what a reader
skimming PyPI needs -- what it is, install, a quick start, the build/run
split, and the warning that store_app filters nothing.

Fixes found while reviewing rather than moved verbatim:

- docs/index.md paired store_app with serve and node_app with
  serve_background as though they were coupled. They are independent;
  either app runs under either runner.
- docs/index.md sent readers to the README for worked examples, which is
  backwards now and would have been a loop.
- The range section cited RFC 7233, obsoleted by RFC 9110, while the rest
  of the same section cited 9110.
- Write examples used a bare `methods={"GET", "PUT"}` although the
  read-only section a few paragraphs earlier introduced
  READ_WRITE_HTTP_METHODS for exactly that.
- "Read-only serving" and "Write support" restated each other; merged.
- The API reference documented 8 of the 13 public names. Added
  ReadOnlyHTTPMethod, READ_ONLY_HTTP_METHODS, READ_WRITE_HTTP_METHODS,
  AUTO_PORT and DEFAULT_PORT -- the missing ReadOnlyHTTPMethod was also
  breaking a cross-reference from the new guide.

Deep links use /en/latest/ rather than /en/stable/: verified to resolve,
and it picks up this change as soon as the site rebuilds. (zarr-metadata's
README links /en/stable/, which currently 404s.)

Assisted-by: ClaudeCode:claude-opus-5

* docs: fix dead links in the subpackage READMEs

Two broken links found by checking every URL in all three packages'
READMEs and docs rather than only the one being edited.

zarr-metadata's `Documentation:` link pointed at
readthedocs.io/en/stable/, which 404s -- neither it nor zarr-indexing has
a `stable` version. Dropped the version segment so it matches the other
two and lets Read the Docs redirect to whatever the default is.

`www.uvicorn.org` no longer resolves at all: the domain is gone, not
merely moved, so it fails DNS rather than returning a 404. Uvicorn's own
PyPI metadata now gives `https://uvicorn.dev/` as its homepage. Fixed in
the zarr-http-server README and docs index, the only two places it
appeared.

Every other link in the three READMEs and their docs trees resolves. The
two remaining 404s are this PR's own links to the not-yet-published
guide page, which resolve once the site rebuilds.

Assisted-by: ClaudeCode:claude-opus-5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant