Skip to content

Conversation

@Carsons-Eels
Copy link
Contributor

@Carsons-Eels Carsons-Eels commented Oct 22, 2025

🗒️ Description

WELDs the documentation infrastructure from EEST into the project including automated workflows, tox environments, and tooling to maintain documentation quality.

Key Changes

GitHub Workflows:

  • Added .github/workflows/eest-docs.yaml workflow to automatically build and validate EEST documentation on push and pull request events
    • Workflow triggers on changes to packages/tests/**, tests/**, and the workflow file itself

Tox Environments:

  • changelog: Validates EEST changelog entries
  • mkdocs: Builds EEST documentation using mkdocs with strict mode enabled
  • markdownlint: Lints markdown files using markdownlint
  • check-docs: Runs all EEST documentation checks
  • spec-docs: Generate documentation for the specification code using docc

Documentation Tooling:

  • Added src/ethereum_spec_tools/whitelist.py: Python script to manage the codespell whitelist with proper alphabetical sorting and formatting
  • Added EESTs .markdownlint.yaml: Configuration for markdownlint with appropriate rule customizations
  • Updated whitelist.txt: Consolidated EEST's whitelist into ours, cleaned up codespell whitelist entries
  • Added docs/templates/function_parameter_datatable.html.j2: Jinja2 template for rendering function parameter documentation

Configuration Updates:

  • Updated tox.ini with new documentation environments and proper dependencies
  • Added mkdocs-related dependencies (mkdocstrings[python], etc.) to documentation extras
  • Configured proper path triggers for CI workflows

Benefits

  1. Automated Quality Checks: Documentation is automatically validated on every PR
  2. Consistent Formatting: Standardized markdown linting and spell checking
  3. Developer Experience: Easy-to-use tox commands for local documentation building and validation
  4. Maintainability: Centralized whitelist management tool prevents ad-hoc additions

Usage

# Build EEST documentation
uv run tox -e eest-mkdocs

# Run all EEST doc checks
uv run tox -e eest-docs

# Run all documentation checks (EEST + main specs)
uv run tox -e docs

# Add words to codespell whitelist
uv run whitelist word1 word2...

🔗 Related Issues or PRs

Part of the WELD milestone (❄️ WELD Freeze ❄️)

✅ Checklist

  • All: Ran fast tox checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    uvx --with=tox-uv tox -e static
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Considered adding an entry to CHANGELOG.md.
  • All: Considered updating the online docs in the ./docs/ directory.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).
  • Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.
  • [N/A ] Tests: For PRs implementing a missed test case, update the post-mortem document to add an entry the list.
  • [N/A ] Ported Tests: All converted JSON/YML tests from ethereum/tests or tests/static have been assigned @ported_from marker.
  • Find-replace mkdocstrings prefixes: ::: with the new package paths
  • Finish updating new whitelist tool to be installable and directly invokable (e.g. whitelist word1 word2)

Cute Animal Picture

Put a link to a cute animal picture inside the parenthesis-->
Credit to Linnaea Mallette:

@Carsons-Eels Carsons-Eels added A-doc Area: documentation E-easy Experience: easy, good for newcomers P-high C-chore Category: chore A-spec-ci Finalize Weld A-ci Area: Continuous Integration labels Oct 22, 2025
Copy link
Member

@marioevz marioevz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gave this a quick look and left some comments, thanks!

@Carsons-Eels Carsons-Eels force-pushed the add_docs_workflows_toxEnvs branch from 41cc805 to 1f58577 Compare October 22, 2025 22:02
@codecov-commenter
Copy link

codecov-commenter commented Oct 23, 2025

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.08%. Comparing base (15b5cfd) to head (6b617f4).
⚠️ Report is 12 commits behind head on forks/osaka.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@               Coverage Diff               @@
##           forks/osaka    #1659      +/-   ##
===============================================
+ Coverage        86.07%   86.08%   +0.01%     
===============================================
  Files              743      743              
  Lines            44078    44072       -6     
  Branches          3894     3891       -3     
===============================================
  Hits             37938    37938              
+ Misses            5659     5656       -3     
+ Partials           481      478       -3     
Flag Coverage Δ
unittests 86.08% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Carsons-Eels
Copy link
Contributor Author

After #1654 is merged, will need to find-replace mkdocstrings prefixes: ::: with the new package paths

Copy link
Contributor

@spencer-tb spencer-tb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Some smol comments. Can re-evaluate once the weld has progressed.
Maybe we should change eest to ethereum-testing or testing @danceratopz

chetna-mittal pushed a commit to gnosischain/execution-specs that referenced this pull request Oct 24, 2025
ethereum#1659)

Add a worst-case test running a block with many `ADDMOD` or `MULMOD`
instructions with arguments of the parametrized range.
@Carsons-Eels Carsons-Eels force-pushed the add_docs_workflows_toxEnvs branch 4 times, most recently from c77fdd3 to 896fe96 Compare October 29, 2025 15:41
@Carsons-Eels Carsons-Eels changed the title Add workflows and tox envs for building docs fix(docs): Add workflows and tox envs for building docs Oct 29, 2025
@Carsons-Eels Carsons-Eels force-pushed the add_docs_workflows_toxEnvs branch from 5752b8a to b44fa53 Compare October 30, 2025 05:33
@Carsons-Eels Carsons-Eels force-pushed the add_docs_workflows_toxEnvs branch from 4d6eb1e to ae6a28f Compare October 30, 2025 22:53
@Carsons-Eels Carsons-Eels force-pushed the add_docs_workflows_toxEnvs branch from c9881cd to ea111a2 Compare October 31, 2025 04:27
@Carsons-Eels
Copy link
Contributor Author

It was all working, then I rebased onto the latest forks/osaka and it broke again 🤦‍♀️
Fixed changelog and markdownlint (bit hacky, but it works) but mkdocs is more of a frustration to fix. Tried moving the docs folder and mkdocs.yml into ./packages/testing but still can't get it to gel properly.
Will try to sort it out tomorrow.

@danceratopz
Copy link
Member

It was all working, then I rebased onto the latest forks/osaka and it broke again 🤦‍♀️ Fixed changelog and markdownlint (bit hacky, but it works) but mkdocs is more of a frustration to fix. Tried moving the docs folder and mkdocs.yml into ./packages/testing but still can't get it to gel properly. Will try to sort it out tomorrow.

As I understood, mkdocs.yml and ./docs should stay in our repo root as it will contain the documentation for the whole repository; after updating they will no longer be tied to EEST (or ./packages/testing/).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-ci Area: Continuous Integration A-doc Area: documentation C-chore Category: chore E-easy Experience: easy, good for newcomers Finalize Weld P-high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants