Concept for versioned HTML doc and rendered specification #1775
Unanswered
danceratopz
asked this question in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Background and Top-Level Goal
The
execution-specsrepo manages the implementation of multiple Ethereum forks in parallel via separate git branches, for example:forks/osaka(default branch),forks/amsterdam,eips/amsterdam/eip-7928.Goal
In order to support the developer community working on Scheduled For Inclusion (SFI'd) versions (or other substantial efforts), the
execution-specsHTML pages should provide versioned sites matching each of these larger development efforts. I.e., the HTML pages should contain a version that corresponds to one of these branches. The docs of each branch are not to be versioned; they will reflect the HEAD of each branch.Status Quo Prior to The Weld
An important part of this documentation (originally in EEST) is the "Test Case Reference", e.g., for the v5.0.0 release, which becomes branch-dependent post-Weld. These are HTML pages, included in the mkdocs generated site, generated from the
tests/test module docstrings and metadata that contain:tests/directory. The individual test pages (attempt to) visualize the parameter combinations that each test uses. This information is extracted from the docstrings and the test parameters via a custom plugin.While the developer docs will mainly be fork-agnostic (although new features may need to be documented in the guides on "Writing Tests", for example), the Test Case Reference is now, as part of execution-specs, heavily branch dependent.
Suggestion for Versioning
The HEAD of every branch that has a ongoing substantial implementation effort will be included as a version that can be selected on the documentation page. In this manner, the available tests for each fork, respectively EIP, can be browsed corresponding to its branch.
The base URL can initially be the Github pages: https://ethereum.github.io/execution-specs/, but preferably be
steel.ethereum.foundation/docs/.Implementation Idea (only for top-level version selector)
Each actively developed branch (e.g. a fork or major EIP) builds its own MkDocs + spec output and uploads it as a zipped artifact.
A single aggregator workflow on the default branch then downloads the latest artifacts from all allow-listed branches, unpacks them into subpaths matching their branch names (e.g. /forks/osaka/, /eips/amsterdam/eip-7928/), mirrors the default branch to the site root (/ and /spec/), generates a
versions.jsonmanifest for the UI dropdown, and publishes the combined result as one GitHub Pages site.Beta Was this translation helpful? Give feedback.
All reactions