Skip to content

[Enhancement] Publish architecture documentation via mdBook and GitHub Pages #28

Description

@Dani-giron

Text description

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.

Actual behavior

Reading the architecture docs means opening raw .md files on GitHub, with no navigation between them, no rendered mermaid diagrams (three sequence diagrams in vista-cc.md are plain fenced code blocks), and a second copy on valhalla that has to be updated by hand and can silently go out of sync.

Expected behavior

docs/architecture/ builds into a static site via mdBook and deploys to GitHub Pages on every push to apotheosis2.

Added:

  • 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.

Also fixed while migrating:

After merge, enabling Pages in repository settings (source: GitHub Actions) and allowing the apotheosis2 branch in the github-pages environment protection rules are one-time steps needed for the site to go live. What to do with the valhalla mirror is out of scope here, will be proposed separately once Pages is up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions