QuantEcon / QuantEcon/actions

ENH: standalone execution check of built notebooks

Open
#2 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement low-priority
Dominant language
Shell
Stars
0
Forks
1
Avg merge
32m
Merged PRs (30d)
3

Description

A lecture can build cleanly and still break for a reader who downloads it. Benefit: match running a lecture standalone.

The gap is the artifact, not kernel isolation — jupyter-cache already isolates kernels per notebook (single_nb_execution). Download/Colab notebooks come from sphinx-tojupyter (containers/quantecon-build/environment.yml:67) via the jupyter builder (build-lectures/action.yml:104, output :126, staged to _build/html/_notebooks :71-76), and nothing here executes them, so conversion defects ship silently. Scope is executing them (PLAN.md:117); both options first floated are dated — a venv off a base anaconda image fights the pinned-as-a-set policy (PLAN.md:96-102), and the preferred jupyter-book/MyST-NB/myst-parser engine runners were never pursued upstream.

Work items

  • Weekly cache workflow (templates/cache.yml:22, 0 0 * * 0): execute each _build/jupyter/**.ipynb in the pinned container, report per-lecture pass/fail
  • Ensure notebooks exist: jupyter builds only when requested (build-jupyter-cache/action.yml:162, built :160-166) and the template ships builders: 'html' with jupyter commented (templates/cache.yml:73-75), so require jupyter or build them
  • Settle the runtime budget for re-executing every lecture weekly; may depend on #92 Phase 3's parallel pre-execution
  • Decide whether failure blocks the cache save or only reports
  • Alerting: build-jupyter-cache's failure-issue path is inline actions/github-script (build-jupyter-cache/action.yml:382-528), so a new job must extract or duplicate it
  • Resolve the "first step of #2" conflict: #92 Phase 3 and PROJECT-OPTIMIZE-PREVIEWS.md:93 both claim it for the jcache project execute --executor local-parallel pilot — a wall-clock optimisation, not an artifact check. Proposal: #92 drops the lineage, this issue keeps the notebook check.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading templates/cache.yml, build-jupyter-cache/action.yml, and build-lectures/action.yml, then review PLAN.md and the linked #92 Phase 3 work. The goal is a weekly cache workflow that ensures _build/jupyter notebooks exist, executes each in the pinned container, reports per-lecture results, and has an agreed failure and alerting policy.

Written by the indexing model from the issue text.

Assessment

Tech stack
anaconda, github-actions, jupyter, shell
Domain
build-system, ci-cd, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.