Skip to content

docs/engine/engine.json: the Wine modules' patches and code, for the site's /wine - #27

Merged
MathiasKowoll merged 1 commit into
mainfrom
engine-docs
Oct 25, 2026
Merged

MathiasKowoll merged 1 commit into
mainfrom
engine-docs

Conversation

@MathiasKowoll

Copy link
Copy Markdown
Owner

Decided 2026-10-25 (hub macgamefix/noticias-verificadas, w01): the site's /wine page reads its patch list and code from the repository, kept up to date by an exporter and a check.

  • tools/export-engine-docs.py (standard library only, like tools/export-fix-docs.py) writes docs/engine/engine.json. With --check it fails when that file is not what the sources say.
  • Schema 1. builds lists every series in engine/patches/ with its patches in name order. Each patch has its name, file, subject, the modules (the dlls/ folders it changes), commit and a permalink. excerpts has the same shape as the site's wine-code.json, plus commit, with language set to c or diff.
  • Hand-written input:
    • docs/engine/patches.json gives a subject line for each patch. The patches have no Subject: header, and a patch without a line fails.
    • docs/engine/excerpts.json holds the eight keys of the site. cap-xinput is a hunk found by a pattern instead of a line range, so it follows the patch if lines move.
  • Check: .github/workflows/engine-docs.yml runs --check on pull requests and pushes to main that touch engine/ or docs/engine/. It is the repository's first workflow.

Tested

  • Cut at the commits the site pinned them to, all eight excerpts are identical to the site's wine-code.json: the same start and end lines, and the same code.
  • --check passes on this branch: 2 series, 18 patches, 8 excerpts.

🤖 Generated with Claude Code

…site's /wine

The site's /wine page kept its code by hand: eight excerpts pinned to five old
commits. tools/export-engine-docs.py now writes docs/engine/engine.json from
engine/patches/, as tools/export-fix-docs.py writes fixes.json. The JSON holds
every series and patch (name, file, what it does, the dlls/ folders it changes,
a permalink to its last commit) and the excerpts.

What only a person can say stays in two hand-written files:
- docs/engine/patches.json gives each patch a line. The patches have no
  Subject: header, and a patch without a line fails.
- docs/engine/excerpts.json names a function to cut, or a hunk to show.

An excerpt runs from the comment above the function to its closing brace,
without the patch's +, and is pinned to the last commit that changed its file.
Cut at the commits the site pinned, all eight came out identical to the site's
wine-code.json: the same lines and the same code.

The Engine docs workflow runs --check on every pull request and push to main
that touches engine/ or docs/engine/, so no version ships with /wine behind.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MathiasKowoll
MathiasKowoll merged commit 63dbeb7 into main Oct 25, 2026
1 check 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.

1 participant