Skip to content

Commit dad0dce

Browse files
committed
Merge main 63ed6bd into fix/explorer-math
One conflict, in CONTRIBUTING.md: #424 condensed the CI paragraph, and this branch's sentence on the WebKit job's MathJax tarball moves into its wording.
2 parents 83005c9 + 63ed6bd commit dad0dce

29 files changed

Lines changed: 1045 additions & 1932 deletions

‎AGENTS.md‎

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,9 @@ workflow and cross-file maintenance.
3131
files under `blueprint/.implementation-notes/`; they are not mathematics or
3232
graph state. Rendered sites, the vault's dependency summary, dashboards, and
3333
runtime projections are derived views, not another durable scheduler or graph.
34-
- In consumer formalization work, Lean imports are allowed. Follow Formalize's
35-
`autoform work import-impact` policy: baseline the affected articles and
36-
repeat that evidence after rebuilding, check them for active conflicts, and
37-
expand ownership only for validated downstream changes; when using claims,
38-
also claim the article/module and check reported claim keys. Never replace
39-
that evidence boundary with a blanket import ban.
34+
- In consumer formalization work, Lean imports are allowed;
35+
[Formalize](skills/formalize/SKILL.md#import-edits) owns that policy. Never
36+
replace it with a blanket import ban.
4037
- Public CLI and JSON shapes are contracts. Lean server work requires an
4138
explicit project root, bounded time and output, verified descendant cleanup,
4239
and no retry after dispatch with an unknown outcome. A project root is not an
@@ -73,4 +70,4 @@ The [CLI reference](autoform_cli/README.md) gives each command's exact rules.
7370
| `work`, `search` | invalid usage (2); bytes changed since the graph loaded; a refused library; under `--module-scope import-closure`, a file outside the captured sources that may import the closure | none; they leave out values they cannot represent, which `check` warns about |
7471
| `library index` | a missing or stale build (2); a stale index under `--check` (1) | none |
7572
| `project`, `doctor` | an inspection or catalog error, a failed diagnosis | a release pairing it cannot resolve |
76-
| `init` | an existing entry that differs from one it manages, without `--force` | the entries it left alone |
73+
| `init` | an input or target it cannot use safely: a case or Unicode variant of a path it manages (even with `--force`), a link or unusable root `.gitignore` in the way, a directory it cannot list, an invalid option or pinned Autoform tree | the existing entries it left alone; CI it skips when there is no Autoform ref to pin |

‎CHANGELOG.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ date when the release is tagged.
1919
commands, and a listing that runs out of time or is interrupted no longer
2020
leaves its transport running. Formalize treats a labelled `claim list`
2121
failure as an unreadable board, not as a board without claims (#432).
22+
- **Render.** An article's page lists its `mathlib_declaration` names in a
23+
Mathlib row, as text without a link, so a `mathlib: true` article names the
24+
declaration it restates (#388).
2225
- **Builds.** `project new` turns on Lake's artifact cache with
2326
`enableArtifactCache` and `restoreAllArtifacts`, so checkouts and worktrees
2427
on one toolchain reuse each other's builds; Setup offers the same two lines

‎CONTRIBUTING.md‎

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,24 @@ dependency explorer regressions` installs the `browser` extra and WebKit and
2222
runs `tests/test_dag_viewer_browser.py` with `AUTOFORM_REQUIRE_BROWSER_TESTS=1`,
2323
so a missing browser fails the job instead of skipping its tests; locally they
2424
skip without the extra, and `make test-browser` installs both and runs them as
25-
CI does. `MathJax read-back cards (Node)` downloads the npm tarball of MathJax
26-
3.2.2, checks its sha256, and runs `tests/test_site_mathjax_node.py` in Node
27-
with `AUTOFORM_REQUIRE_MATHJAX_TESTS=1`; locally those tests skip unless `node`
28-
is on `PATH` and `AUTOFORM_MATHJAX_DIR` names an unpacked MathJax 3.2.2
29-
package. The WebKit job unpacks the same checked tarball too, for the
30-
explorer's typesetting test, which serves MathJax from it in place of the CDN
31-
and skips the same way. `real Lean
32-
(fixture toolchain)` builds and audits a project from the bundled Mathlib
33-
release and runs
34-
the real-Lean suites other than the skeleton suite, which `real Lean skeleton
35-
suite` runs with one `tests/test_project_inspect.py` test. Another job runs the
36-
inspection, bounded-subprocess, and transactional-output tests on Windows, and
37-
the last builds
38-
`tests/fixtures/repl-smoke` and runs `tests/test_real_repl.py` against the
39-
pinned upstream REPL, also checking the header parser on the oldest Lean release
40-
Autoform supports. Locally, tests that need Lean skip when
41-
`lake` is not on `PATH`. Those in `tests/test_skeleton.py`, `test_impact.py`,
42-
`test_contract.py`, `test_lake_artifact_audit.py`, `test_lsp_protocol.py` and
43-
`test_batch_diagnostics.py` also skip when elan is installed but the
44-
toolchain pinned in `tests/fixtures/skeleton-project/lean-toolchain` is
45-
missing; only the real-Lake test in `tests/test_project_inspect.py` lets elan
46-
download it. The `tests/test_library_generate.py`
47-
ones that run Lean build a fixture that clones Batteries from GitHub, so they
48-
run only when `AUTOFORM_REQUIRE_REAL_LIBRARY_TESTS=1` is set, as their CI job
49-
does; a missing toolchain or a failed download then fails them. Run
25+
CI does. The `MathJax read-back cards (Node)` tests skip locally unless `node`
26+
is on `PATH` and `AUTOFORM_MATHJAX_DIR` names an unpacked MathJax 3.2.2 package;
27+
`AUTOFORM_REQUIRE_MATHJAX_TESTS=1`, which CI sets, makes that a failure. The
28+
WebKit job unpacks the same checked MathJax tarball for the explorer's
29+
typesetting test, which serves MathJax from it in place of the CDN and skips
30+
the same way without it. The other jobs, which build and audit a project from the bundled Mathlib release,
31+
run the real-Lean suites, run the inspection, subprocess, and publication tests
32+
on Windows, and run `tests/test_real_repl.py` against the pinned upstream REPL,
33+
are listed with the tests each runs in
34+
[`tests.yml`](.github/workflows/tests.yml). Locally, tests that need Lean skip
35+
when `lake` is not on `PATH`, and most also skip when elan is installed but the
36+
toolchain pinned in `tests/fixtures/skeleton-project/lean-toolchain` is missing;
37+
only the real-Lake test in `tests/test_project_inspect.py` lets elan download
38+
it. `AUTOFORM_REQUIRE_REAL_LEAN_TESTS=1`, which CI sets, makes a missing
39+
toolchain a failure instead. The `tests/test_library_generate.py` tests that run
40+
Lean clone Batteries from GitHub, so they run only with
41+
`AUTOFORM_REQUIRE_REAL_LIBRARY_TESTS=1`, and then a missing toolchain or a
42+
failed download fails them. Run
5043
`lake build` in `skills/setup/assets/cabannes-thesis-project` when you change
5144
the example's Lean sources or declarations.
5245

0 commit comments

Comments
 (0)