Skip to content

docs: publish architecture documentation via mdBook and GitHub Pages (closes #28) - #29

Merged
danielhuici merged 13 commits into
reverseame:apotheosis2from
Dani-giron:j1-docs-mdbook
Sep 1, 2026
Merged

danielhuici merged 13 commits into
reverseame:apotheosis2from
Dani-giron:j1-docs-mdbook

Conversation

@Dani-giron

@Dani-giron Dani-giron commented Jul 24, 2026 •

Copy link
Copy Markdown

Summary

The Views and Beyond documentation (docs/architecture/: roadmap, quality attributes, directory, module/C&C/deployment views) exists only as plain markdown in the repo, plus a manually maintained copy on the university MediaWiki (valhalla.unizar.es). The wiki copy has already drifted from the source at least once, and nothing renders the mermaid diagrams or cross-links between documents as a browsable site.

Changes

  • docs/book.toml: mdBook config, src = "architecture" (no files moved), title/authors, git-repository-url and edit-url-template so each page links back to its source file.
  • docs/architecture/SUMMARY.md: navigation, listing the existing README, the three cross-cutting documents, and the three views. No content rewritten to fit it.
  • docs/mermaid.min.js and docs/mermaid-init.js: committed rather than generated in CI, since the deploy workflow only runs mdbook build, not mdbook-mermaid install. Without them the three diagrams would silently fail to render on the published site.
  • .github/workflows/pages.yml: builds and deploys on push to apotheosis2 (not main) when docs/** changes, or via workflow_dispatch. Downloads pinned prebuilt mdbook/mdbook-mermaid binaries instead of cargo install, to avoid pulling a full Rust toolchain just to build docs.
  • .gitignore: added docs/book/, the generated output, never committed.
  • Image asset cleanup: one filename had spaces/accents, two PNGs were unreferenced duplicates, two .gitkeep were redundant. Renamed, deduplicated, updated the three affected references in vista-cc.md/vista-modulos.md.
  • Several docs described behavior that had since changed in code: hnsw/radix/records documented as pub (now private, [Enhancement] Make Apotheosis internal fields private to protect the synchrony invariant #14), HEURISTIC documented as unvalidated in dump/load (now validated, [Bug] dump() does not encode HEURISTIC in file header #10), empty-index search() documented as panicking (now returns vec![], [Bug] search() panics on empty index #8), and the radix fast-path documented as ignoring k and returning unsorted results (now sorts and truncates to k like the ANN path, [Bug] search() ignores parameter k on radix fast-path #9). Corrected all four.
  • Removed leftover internal review notes in HTML comments in two documents, and replaced most exact source line-number references with function/struct names so the docs do not go stale on the next refactor.

Test plan

Verified locally: mdbook build docs succeeds with no warnings, all internal links resolve, mermaid diagrams render, and the site was reviewed end to end with mdbook serve.

After merging, two one-time repository settings are needed for the site to go live: enable Pages with source set to GitHub Actions, and allow the apotheosis2 branch to deploy under the github-pages environment's protection rules.

What to do with the existing valhalla.unizar.es mirror is intentionally out of scope here; that involves university infrastructure outside this repo and will be proposed separately once Pages is confirmed working.

Closes #28.

Dani-giron and others added 13 commits July 24, 2026 17:49
…drop exact dependency versions and benchmark numbers in favor of Cargo.toml, document the test_tlsh data file index trap, and fix the example repo path
…e dead link to atributos-calidad.md, trim the struct snippet and dependency example to their stable parts
…C to the Hnsw/Apotheosis signatures, document the public initialize method
The documentation was written in July and reviewed against the code of
that moment. Meanwhile reverseame#24 (distance type in the dump/load header),
reverseame#25 (GEXF export extracted to export::gexf, gexf fork emits the
attribute schema), reverseame#27 (record constructors return Result) and reverseame#31
(facade read accessors) landed. Update the interface document, the
three views, the glossary and the README accordingly. Text only; the
C&C component model and diagrams are untouched.
@danielhuici
danielhuici merged commit 7a4d6b4 into reverseame:apotheosis2 Sep 1, 2026
12 checks passed
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.

2 participants