QuantEcon / QuantEcon/actions

build-lectures: `-n` (nitpick) absent from default strictness; no extra-args passthrough via build-jupyter-cache

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

Nobody has claimed this yet.

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

Description

From the v0.8.0 validation study against native lecture-python-intro / lecture-python-programming. Context: QuantEcon/lectures#11.

build-lectures defaults extra-args to -W --keep-going (build-lectures/action.yml:25) — no -n. HTML-only gap: :103-104 hard-codes -n for pdflatex and jupyter, and only the html branch (:102) leaves builder_args empty, so the published site builds without nitpick. build-jupyter-cache calls build-lectures at three fixed with: blocks with no extra-args passthrough (build-jupyter-cache/action.yml:160-190), so its consumers cannot get -n — or any flag — in.

Native practice is not uniform:

  • lecture-python-programming ci.yml:87 + publish.yml:103 — -n -W --keep-going
  • lecture-python-intro ci.yml:86 — -nW --keep-going; publish.yml:91 — none, neither -n nor -W
  • both repos' cache.yml — -W --keep-going

So the default already equals both native cache builds and is stricter than intro's publish; -n diverges only on the CI/publish HTML path, which a direct build-lectures consumer can override.

templates/ci.yml:82 and templates/publish.yml:98 hard-code extra-args: '-W --keep-going', and extra-args replaces rather than extends the default (build-lectures/README.md:190-203): changing the default is a no-op for template-derived consumers, and adding -n but dropping -W silently loses build-failure detection.

Decisions needed before any code

  • Org strictness for HTML builds — add -n? Standardization, not a parity fix, and consumer-visible: repos with broken cross-references start failing CI, so it wants an announcement and a minor release.
  • Passthrough shape — a per-builder html-extra-args beats a blanket extra-args, since pdflatex and jupyter already inject -n and would get it twice.

Then, in this order

  • Apply the decided strictness to templates/ci.yml:82 and templates/publish.yml:98 — that is what reaches consumers.
  • Add the passthrough to build-jupyter-cache/action.yml:42-51, wired at :168/:178/:188, mirroring the upload-failure-reports plumbing from v0.11.0 (#83); update the reproduce commands at :439-443, whose comment (:438) requires them to match today's flags. templates/cache.yml:62 inherits the gap and cannot carry the strictness decision until then.
  • Document the native-equivalent invocation in docs/MIGRATION-GUIDE.md, which never mentions extra-args; the only nitpick guidance is the "Nitpick mode" example at build-lectures/README.md:212.

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

Read build-lectures/action.yml, build-jupyter-cache/action.yml, the CI, publish, and cache templates, and the README sections on extra-args. Compare the existing builder arguments with the reproduce commands at build-jupyter-cache/action.yml:439-443, then confirm the strictness and passthrough decisions before changing anything. Done means the chosen flags reach the relevant consumers, the cache action exposes the agreed arguments, and the migration guidance and reproduction commands match.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, shell
Domain
ci-cd, devops, documentation
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.