Skip to content

ci: split compile vs doc generation into separate jobs (non-blocking docs)#3

Merged
gotrevor merged 3 commits into
masterfrom
ci-split-docs
Jun 21, 2026
Merged

ci: split compile vs doc generation into separate jobs (non-blocking docs)#3
gotrevor merged 3 commits into
masterfrom
ci-split-docs

Conversation

@gotrevor

Copy link
Copy Markdown
Owner

Stacked on #2 (docbuild). Splits the monolithic build job so library compilation and documentation generation are separate CI jobs.

Why

  • Signal separation: "does the library compile?" is its own green check (build), independent of doc-gen4.
  • Non-blocking docs: the docs job is continue-on-error: true, so doc-gen4 tooling breakage (the flakiest dep across Lean bumps) shows its own status but never gates a green library PR.

Shape

  • build (needs mk-all-check): lake build Foundation + pack/cache-save. The gate.
  • docs (needs build, continue-on-error): restores the cached library build (no recompile), cd docbuild && lake build Foundation:docs, import graph, uploads artifacts.
  • deploy (master-only): now needs docs (the artifact source) instead of build.

⚠️ With continue-on-error on docs, a docs failure on master lets deploy proceed and fail at the copy step — acceptable signal, but you may prefer to drop continue-on-error and instead mark docs non-required in branch protection. Mechanical change produced with Claude Code; this PR's CI is the verification.

gotrevor and others added 3 commits June 21, 2026 16:37
lean-toolchain v4.29.0 -> v4.31.0; mathlib and doc-gen4 requires bumped to
v4.31.0, with the source migration across the Foundation library (133
files). sorry/admit baseline unchanged (27, all pre-existing upstream).

doc-gen4 pinned to its v4.31.0 tag (upstream tracked `main`); flip back to
`main` if preferred.

Mechanical port produced with Claude Code; not yet human-reviewed.
Porting cheat sheet:
https://github.com/gotrevor/mathlib-bump-cookbook/blob/main/v4.29.1-to-v4.31.0.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Moves doc-gen4 out of the main lakefile into a nested `docbuild/`
sub-project, per doc-gen4's own recommended usage pattern. The main
`lake build` and lake-manifest.json no longer pull in doc-gen4 +
MD4Lean / BibtexQuery / UnicodeBasic / leansqlite; downstream consumers
of Foundation no longer inherit them either. Mirrors mathlib, which keeps
doc-gen4 out of its own manifest entirely.

Docs build moves to `cd docbuild && lake build Foundation:docs` (output at
docbuild/.lake/build/doc); CI docs/artifact/deploy steps updated to match.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Separates the single `build` job into:
- `build` — compiles the Foundation library (the gate)
- `docs` — generates doc-gen4 docs + import graph, continue-on-error so
  doc-gen4 tooling breakage never blocks a green library build

The docs job reuses the library build the `build` job caches (same key), so
Foundation isn't recompiled. `deploy` now needs `docs` (the artifact source).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@gotrevor gotrevor merged commit 65d74ce into master Jun 21, 2026
6 checks 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