Skip to the content.

← lean-pkg documentation

LTS stacks

A stack is a dated, tested combination of a Lean toolchain, a Mathlib tag and a range of lean-pkg releases, which those releases keep working on for a stated window (proposal 0004, accepted 2026-10-17). Stacks are named lts-YYYY.MM and cut in April and October; each is supported for about 18 months. Each has a machine-readable file (schema lean-pkg-stack/1, validated by tests/test_stacks.py) and a page.

Stack Lean Mathlib lean-pkg Supported until Status
lts-2026.10 (yaml) v4.35.0 v4.35.0 (56a005855ea1) >=0.12.0,<1.0 2028-04-30 declared 2026-10-18 (five matrix entries; gromov-filling-lean a migration case)

How to opt in

Nothing changes for a package that does not opt in. A package opts in with one optional key in its coverage.yaml (both kinds; lean-pkg 0.14.0 and older refuse it, since coverage/1 is strict):

stack: lts-2026.10

The comparator tools of a stack are the ones its toolchain bundles (the toolchain mechanism), so the lean-toolchain pin is their pin. Moving between stacks (doctor --stack-from A --stack-to B, migration notes) comes with the second stack.

Where the files live

The files in this directory are the source of truth. The lean-pkg wheel carries a byte-identical copy of each under lean_pkg/data/stacks/ (written by make docs, checked by tests/test_stacks.py), which is what an installed lean-pkg reads, inside or outside a lean-pkg checkout.