Skip to content

Fix execution + doc failures surfaced by the Anaconda 2026.07 cache build (kalman_2, likelihood_bayes, sir_model, ak_aiyagari) #182

Description

@mmcky

A cold Build Cache run on main under anaconda 2026.07 (#179) — run 29684952795 — surfaced four failures. Two are live execution breaks that the edition's CI did not catch because its ci.yml sphinx-tojupyter step lacks -n -W (see QuantEcon/meta#340); the previews for these lectures went green while the notebooks were actually broken. The other two are documentation errors the full-book build caught under -W.

Execution breaks (broken on the live site now)

1. likelihood_bayesAttributeError: module 'matplotlib' has no attribute 'font_manager'

The font block calls mpl.font_manager.fontManager.addfont(...) before import matplotlib.pyplot. Older matplotlib imported font_manager as a side effect of import matplotlib; 2026.07's newer matplotlib does not, so the attribute is undefined. This is an environment regression (same class as the mix_model fix in #174).

Fix: add import matplotlib.font_manager to the font block, or move the import matplotlib.pyplot as plt line above the addfont call.

2. kalman_2ParseFatalException: Unknown symbol: \begin (matplotlib mathtext)

A plot title is $\Sigma_0 = \begin{bmatrix} 4 & 0 \\ 0 & 4 \end{bmatrix}$. matplotlib mathtext cannot render \begin{bmatrix} (a LaTeX environment). This is a consequence of the usetex→mathtext switch decided in #22 — under text.usetex=True the matrix rendered; mathtext cannot. mathtext supports \mathbb, subscripts and Greek, but not LaTeX matrix/array environments.

Fix (choose one): rewrite the title so the matrix is not inside a matplotlib string (e.g. move Σ₀'s value into the surrounding prose/caption and keep the title symbolic), or — as a narrow exception to #22 — restore text.usetex for this one lecture. Recommendation: rewrite the label, to keep #22's drop-usetex standard intact.

Documentation errors (build-failing under -W)

3. sir_model.md:24Directive 'raw': 1 argument(s) required, 0 supplied. A {raw} directive is missing its format argument (e.g. {raw} html). Fix the directive or remove it.

4. ak_aiyagari.md — 13× Document headings start at H2, not H1 [myst.header]. The lecture has no H1 (top heading is H2). Restore a single H1 title.

Completeness caveat

The Build Cache is content-addressed, so this run re-executed the lectures whose code changed (the resync wave) under 2026.07 but reused old-environment cache for the ~15 unchanged lectures — those were not re-tested. All 69 lectures carry the same font block, but only likelihood_bayes has the fatal ordering among those re-executed. A clean full re-execution (cache cleared) is recommended to confirm 2026.07 across the whole corpus before treating the bump as verified.

Related

  • #179 (the anaconda bump this surfaced) — labelled blocked.
  • QuantEcon/meta#340 — the CI-masking that let breaks 1 & 2 merge; fixing it (add -n -W to the execution step) makes this catch automatically.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions