ENH: standalone execution check of built notebooks
Nobody has claimed this yet.
- 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/**.ipynbin 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 requirejupyteror 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 inlineactions/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-parallelpilot — a wall-clock optimisation, not an artifact check. Proposal: #92 drops the lineage, this issue keeps the notebook check.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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