Skip to content

docs: align documentation with the code and lead benchmark pages with results - #200

Merged
gouyt13 merged 3 commits into
mainfrom
docs/align-docs-and-benchmark-pages
Oct 31, 2026
Merged

gouyt13 merged 3 commits into
mainfrom
docs/align-docs-and-benchmark-pages

Conversation

@gouyt13

@gouyt13 gouyt13 commented Oct 31, 2026

Copy link
Copy Markdown
Member

Summary

A pass over the repository docs and the documentation site, checked against the code at bac860d, plus a refresh of the benchmark pages. The three commits can be reviewed separately.

ci: deploy docs on every main push and fix stale script paths

  • docs.yml: main pushes always build and deploy. Before, a newer push without docs changes could cancel a docs-changing run, and its own diff would skip the deploy, leaving the site behind main. The workflow contract test checks the new condition.
  • ci_changes.py: remove the deleted benchmarks/plot_homepage.py and update its tests.
  • sample/run_cpp.sh: extract the GIST archive into ./data, as run_python.sh does. The archive has a top-level gist/ directory.
  • DBPEDIA_MANIFEST.json: the source field now names the file the downloader actually fetches.

docs: align documentation with the current code

docs: lead benchmark pages with results and redraw QPS-recall figures

  • Benchmark pages show results before setup and reproduction details. The overview opens with GIST1M key results.
  • QPS–recall figures:
    • One panel per storage class: codes with float32 reranking, about 4 bits, about 8 bits.
    • Validated three-color palette, with line style and marker as a second encoding.
    • Recall axis from 0.5 where possible; legends below the panels.
    • The subtitle CPU comes from the build records; selections with mixed CPUs are rejected.
  • The four SVGs were regenerated from the committed qps-recall-points.csv with the new plot_family(). No new measurements were taken; the raw records are not available locally, so the CPU string follows /proc/cpuinfo format.
  • Home page: one sentence on the error-bound guarantee, and GIST1M numbers on each index card, recomputed from the CSVs.
  • Layout:
    • Tables, code and figures use a 44rem column; prose stays at 34rem.
    • Charts scroll sideways on narrow screens.
  • Corrections to benchmark setup statements:
    • the installer builds with native optimization ON;
    • the runners require the recorded host and thread layout;
    • training-time columns;
    • the 0.7.1 raw records are not published.

No API, saved-index format or dependency changes.

Testing

  • python -m mkdocs build --strict --config-file docs/mkdocs.yml: no warnings. Layout checked in headless-browser screenshots at 1440 px and 390 px, light and dark.
  • ./scripts/check-python.sh, plus ruff format --check and ruff check on .github/scripts: pass.
  • python -m unittest discover -s .github/scripts -p 'test_*.py': 60 tests OK.
  • python -m pytest tests/python/test_benchmark_protocol.py: 14 passed. The two new plot tests use pytest.importorskip("matplotlib"), so they are skipped in the Python quality job, which does not install matplotlib.
  • shellcheck sample/run_cpp.sh and git diff --check: clean.
  • Not run:
    • sample/run_cpp.sh end to end (it needs the 2.7 GB GIST download). The fix is based on the archive layout and run_python.sh.
    • The benchmark suite (no new measurements).

A newer push could cancel a docs-changing run on main, and its own diff
would then skip the deploy, leaving the site behind main. Main pushes now
always build and deploy the documentation.

Also drop the deleted benchmarks/plot_homepage.py from CI routing, extract
the GIST archive in sample/run_cpp.sh into ./data like run_python.sh (the
archive has a top-level gist/ directory), and record the OpenAI dataset
source the downloader actually uses.
Correct statements that no longer match the code: advanced-encoder
preconditions, HNSW ef/pool clamping, add capacity, M validation and
cluster_id_of, the IVF k limit, wheel OpenMP bundling, contributor
commands (ctest --no-tests=error, clang-tidy flags, Ruff coverage of
.github/scripts), CI routing and caching notes, and the test layout.

Add the missing 0.7.1 release notes, point README links at absolute URLs
so they also work on PyPI, and remove an unused image.
Benchmark pages now show results before setup and reproduction details,
and the overview opens with the GIST1M key results. QPS-recall figures
compare methods with similar storage in separate panels, use a validated
three-color palette with line and marker encoding, start the recall axis
at 0.5 where possible, and keep legends clear of the data. Figure
subtitles take the CPU from the build records, and mixed-CPU selections
are rejected.

The pages also correct setup statements that no longer matched the
scripts: the installer's native-optimization setting, the host and
thread requirements, the training-time columns and the unpublished raw
records.

The home page states the RaBitQ error-bound guarantee and gives GIST1M
numbers per index. Tables, code and figures use a wider column while prose
keeps its measure, and charts scroll sideways on narrow screens.
@github-actions github-actions Bot added the release:documentation Release category managed from the PR title label Oct 31, 2026
@gouyt13
gouyt13 merged commit c753748 into main Oct 31, 2026
49 checks passed
@gouyt13
gouyt13 deleted the docs/align-docs-and-benchmark-pages branch October 31, 2026 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:documentation Release category managed from the PR title

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant