Skip to content

ci: enforce quarto extensions render only what they serve - #450

Draft
amylin1249 wants to merge 2 commits into
mainfrom
quarto-served-document-lint
Draft

ci: enforce quarto extensions render only what they serve#450
amylin1249 wants to merge 2 commits into
mainfrom
quarto-served-document-lint

Conversation

@amylin1249

@amylin1249 amylin1249 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Split out of #442, stacked on #449 so the guard passes against the already-fixed content.

Adds a lint-extension check that fails when a non-website Quarto extension renders more than one document, since with no pinned project.render the served document can silently flip away from the entrypoint (#392) while every build-time check stays green.

Incorporates @dotNomad's review from #442:

  • Flags any stray rendered document (.qmd, .ipynb, etc.), not just Markdown.
  • Also retests complex extensions when lint-extension changes, matching the existing simple-extension _infra filter.
  • Fixed a crash when an extension renders zero documents.

One point from that review is not fixed here, by design: a quarto inspect failure (including an invalid _quarto.yml) is still treated as "not a Quarto project" and passes silently. I tried tightening this, but it broke script-r: inspecting its bare .R entrypoint needs Rscript on PATH (knitr preprocesses it just to inspect it), and this lint job doesn't provision R. Distinguishing "genuinely invalid config" from "this job lacks the runtime to inspect it" needs the job to set up the right language runtime per extension first, which is bigger than this PR's scope. Left as a known gap, per dotNomad's own note that this is a reasonable first pass.

@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Extension release summary

😴 Changed but won't release

The following extensions have code changes but the manifest version hasn't been incremented:

  • publisher-command-center: manifest version 0.0.8 ≤ released version 0.0.8
  • runtime-version-scanner: manifest version 1.0.5 ≤ released version 1.0.5
  • usage-metrics-dashboard: manifest version 1.0.15 ≤ released version 1.0.15

If you intended to release these changes, update the version field in each extension's manifest.json.

See the contributing guide for details.

@dotNomad
dotNomad force-pushed the quarto-served-document-lint branch from c74a164 to 6d22e0b Compare August 14, 2026 00:28
Base automatically changed from quarto-served-document-fixes to main August 14, 2026 00:34
Adds a lint-extension guard for Quarto content: it fails when a
non-website extension renders more than one document, since with no
pinned project.render the default served document can silently flip
away from the entrypoint (#392) while every build-time check stays
green.

Addresses review feedback from #442:
- Only skips the check when _quarto.yml is absent; an invalid
  _quarto.yml now fails quarto inspect loudly instead of passing.
- Flags any stray rendered document (.qmd, .ipynb, etc.), not just
  Markdown.
- Also retests complex extensions when the lint-extension action
  changes, matching the simple-extension _infra filter.
Inspecting script-r's bare .R entrypoint needs Rscript on PATH (knitr
preprocesses it just to inspect it), which this lint job doesn't
install. Treat a quarto inspect failure the same as "not a project"
again instead of failing the lint, since this job isn't set up to
provision every extension's runtime.
@dotNomad
dotNomad force-pushed the quarto-served-document-lint branch from 6d22e0b to 563858d Compare August 14, 2026 00:34
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.

1 participant