Skip to content

Tooling scaffolding refresh: Dependabot, linkcheck, action-pin bumps - #26

Merged
mmcky merged 3 commits into
mainfrom
tooling/scaffolding-refresh
Jun 22, 2026
Merged

mmcky merged 3 commits into
mainfrom
tooling/scaffolding-refresh

Conversation

@mmcky

@mmcky mmcky commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Part of #22 — the mechanical "Bucket A" items that need no maintainer decisions.

What's in here

Change Why
New .github/dependabot.yml (github-actions + conda, weekly, with the jupyter-book >=2.0 ignore) The highest-value item: in the last fortnight Dependabot auto-delivered to lecture-python-advanced.myst the exact sphinx-extension bumps this repo missed. Without it this repo drifts silently.
New linkcheck.yml (weekly lychee run) Dead links currently go undetected indefinitely. ⚠️ Note: this repo deploys Pages via the OIDC artifact workflow, so there is no gh-pages branch — the workflow mirrors the live site (dp.quantecon.org) with wget instead of the checkout-gh-pages pattern other lecture repos use.
actions/checkout v4→v6, upload-artifact v4→v7, download-artifact v4→v6 Catch up to current majors; Dependabot maintains them from here.
cache.yml: rebuild on environment.yml change (push to main) Previously the build cache stayed stale for up to a week after an env change, so PRs built against an outdated cache.
environment.yml: sphinx-proof 0.3.0→0.4.0, sphinxcontrib-youtube 1.4.1→1.5.0, sphinx-togglebutton 0.3.2→0.4.5 Stale pins copied from an older repo's env; these are the versions the sibling lecture repos run with the same jupyter-book pin.
Remove placeholder google_analytics_id: G-XXXXXXXXXX Non-functional placeholder; re-add with a real GA4 measurement ID if analytics are wanted.

Deliberately NOT in here

Validation

  • CI on this PR runs the full container build with the bumped extension pins.
  • linkcheck.yml is schedule + workflow_dispatch; it can be smoke-tested from the Actions tab after merge.

🤖 Generated with Claude Code

Mechanical items from the lecture-dp tooling review (tracking: #22):

- Add .github/dependabot.yml (github-actions + conda weekly, with the
  jupyter-book >=2.0 ignore — jb 2.x is the MyST-MD rewrite and not a
  drop-in upgrade)
- Add linkcheck.yml (weekly lychee run against the live site; this repo
  deploys Pages via the OIDC artifact workflow, so there is no gh-pages
  branch to check out — the site is mirrored with wget instead)
- Bump actions/checkout v4 -> v6, upload-artifact v4 -> v7,
  download-artifact v4 -> v6 (Dependabot keeps these current from here)
- cache.yml: rebuild the build cache when environment.yml changes on
  main (previously stale for up to a week after env changes)
- environment.yml: bump sphinx-proof 0.3.0 -> 0.4.0,
  sphinxcontrib-youtube 1.4.1 -> 1.5.0, sphinx-togglebutton
  0.3.2 -> 0.4.5 (matches the versions the sibling lecture repos run
  with the same jupyter-book pin)
- Remove the placeholder google_analytics_id (G-XXXXXXXXXX); re-add
  with a real GA4 measurement ID if analytics are wanted

The quantecon-book-theme pin (==0.15.1) is deliberately NOT bumped
here — that needs a visual layout review and is tracked in #23.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 11, 2026 03:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refreshes repository automation/scaffolding to reduce drift and add maintenance checks, aligning lecture-dp with other lecture repos’ tooling (Dependabot updates, scheduled link checking, and workflow pin/cache maintenance).

Changes:

  • Add Dependabot configuration for GitHub Actions and conda (environment.yml) updates, with an explicit ignore for jupyter-book>=2.0.
  • Add a scheduled/manual link-check workflow using lychee against a mirrored copy of the published site.
  • Refresh CI/publish/cache workflows (action major bumps; rebuild cache when environment.yml changes) and update a few pinned Sphinx extension versions; remove the placeholder GA4 ID.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
lectures/_config.yml Removes non-functional Google Analytics placeholder configuration.
environment.yml Updates pinned Sphinx extension versions used by the build.
.github/workflows/publish.yml Updates workflow action pins used for checkout/artifact handling during publish.
.github/workflows/linkcheck.yml Introduces scheduled/manual link checking against the live published site.
.github/workflows/ci.yml Updates workflow action pins used for checkout/artifact handling during PR CI.
.github/workflows/cache.yml Triggers cache rebuilds on environment.yml changes and updates checkout action pin.
.github/dependabot.yml Adds Dependabot updates for GitHub Actions and conda, with jupyter-book>=2.0 ignored.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/linkcheck.yml
Previously `wget ... || true` let the job report success even when the
mirror failed, so lychee ran against an empty directory and reported no
broken links (false negative, per Copilot review on #26). Now count the
mirrored HTML files: if zero, skip lychee and open an issue noting the
mirror failed; otherwise run lychee as before.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Build Cache workflow passed `builder:` (singular), but the
quantecon/actions/build-jupyter-cache input is `builders` (plural), so
the value was silently ignored. It was harmless only because the action
default is already `html`; renaming makes the intent explicit and avoids
a silent no-op if the builder set ever changes.

Refs #31

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mmcky
mmcky merged commit e5b342e into main Jun 22, 2026
1 check passed
@mmcky
mmcky deleted the tooling/scaffolding-refresh branch June 22, 2026 03:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants