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
Open
docs: link the zarr-http-server docs site, and fix dead links across subpackage READMEs#287d-v-b wants to merge 3 commits into
d-v-b wants to merge 3 commits into
Conversation
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
7 tasks
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
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.
🤖 AI text below 🤖
Adds the Read the Docs link to the
zarr-http-serverREADME, 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:
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 thatstore_appfilters nothing.Dead links fixed
Found by checking every URL in all three packages' READMEs and docs, not just the file being edited:
zarr-metadata'sDocumentation:link 404s. It points atreadthedocs.io/en/stable/, and neither zarr-metadata nor zarr-indexing has astableversion. Dropped the version segment so it matches the other two and lets Read the Docs redirect to the default.www.uvicorn.orgno 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 giveshttps://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.mdpairedstore_appwithserveandnode_appwithserve_backgroundas though they were coupled. They are independent — either app runs under either runner. Collateral from theserve_store/serve_node→serve/serve_backgroundrename.docs/index.mdsent readers to the README for worked examples. Backwards now, and would have been a loop.methods={"GET", "PUT"}although the read-only section a few paragraphs earlier introducedREAD_WRITE_HTTP_METHODSfor exactly that.ReadOnlyHTTPMethod,READ_ONLY_HTTP_METHODS,READ_WRITE_HTTP_METHODS,AUTO_PORT,DEFAULT_PORT. The missingReadOnlyHTTPMethodwas also breaking a cross-reference from the new guide, which--strictcaught.Claims that were kept got re-verified against the code —
DEFAULT_MAX_BODY_SIZEis 256 MiB,PUTwithin the cap returns 204 and over it 413, an unsupported method raisesValueErrorat 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 checkpasses: ruff, mypy, 212 tests, and a--strictdocs 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.