Repository navigation
feat(forkdiff): fork-diff page on GitHub Pages + CI gate that a rebase must update it - #19
Merged
Merged
Conversation
…staying true Layr-Labs/mlx is a fork of ml-explore/mlx; nothing recorded what it changes or which upstream commit it sits on. Adopt protolambda/forkdiff the way op-geth does for go-ethereum: `fork.yaml` names the upstream base (77a0c1e, upstream main 2026-08-14) and groups every changed file into a described section — Metal eval use-after-free fix, sorted expert-tile quantized matmul (E=128/E=256) with diagnostics, GPT-OSS MXFP4 masked-tail decode, coherent allocator accounting, FP32 SDPA partials, declared-mutable custom-kernel inputs, cross-thread compile-cache cleanup — plus one honest section for the 131 files that are byte-identical to upstream v0.32.2 and only look like fork changes because PR #10 applied them instead of merging. `forkdiff-pages.yml` renders and deploys the page to GitHub Pages on push to main (skipping the deploy with a notice until an admin enables Pages). `scripts/check_forkdiff.py` runs on every PR and push (`forkdiff-check.yml`) and fails when base.hash is not merge-base(HEAD, upstream/main) — which is exactly what a rebase changes — or when a changed file is undescribed, or a section names files the fork no longer changes. The same check runs before publishing so a stale page is never served. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Gajesh2007
approved these changes
Sep 14, 2026
davidtai
added a commit
that referenced
this pull request
Oct 5, 2026
The fork-diff gate from main (#19) failed after the merge: softmax.h, steel_gemm_fused.h and steel_gemm_fused_nax.h were not described by any section. Add one section for this PR that lists every file it changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Fork-diff page (op-geth style, via protolambda/forkdiff).
fork.yamlat the root names the upstream commit this fork sits on and groups every file the fork changes into a described section:v0.32.2(CUDA backend, Python tests, repo CI/templates,AGENTS.md/CLAUDE.md, …). They show up as fork changes only because chore: upgrade core to MLX 0.32.2 #10 applied upstream's delta instead of merging it; the page says so rather than crediting the fork with them. This section vanishes once the fork rebases onto a commit at or past v0.32.2..github/workflows/forkdiff-pages.ymlrenders it on every push tomainand deploys to GitHub Pages → https://layr-labs.github.io/mlx/.Enforcement gate.
scripts/check_forkdiff.pyruns on every PR and push (forkdiff-check.yml) and fails when:base.hash≠git merge-base HEAD upstream/main, or not an ancestor of upstreammaingit diff base.hash..HEADmatches no section glob / global ignoreIt also renders the page, so a
fork.yamlforkdiff rejects can't merge; the deploy workflow runs the same check first, so a stale page is never published.FORKDIFF.mddocuments the day-to-day and how to bump after a rebase; the README links the page.Base
77a0c1e8ae16eb781a79e2b7134ba84b2ee7b597= upstreammainat 2026-08-14 (the merge-base). Fork diff against it: 166 files (172 including this PR's own), all described.One-time admin step
GitHub Pages is not enabled on this repo and the workflow token cannot enable it (
configure-pagesenablement needs an admin token). Until an admin sets Settings → Pages → Source: GitHub Actions, the deploy workflow builds the page, keeps it as theforkdiff-pageartifact and exits with a notice rather than failing. The existingdocumentation.ymlisworkflow_dispatch-only, so nothing contends for the Pages site.Verification
upstream/mainfetch:changed files 172 described 172, exit 0.go run github.com/protolambda/forkdiff@v0.1.1: 1.3 MB, all sections present, nothing unmatched.🤖 Generated with Claude Code