ci: enforce quarto extensions render only what they serve - #450
Draft
amylin1249 wants to merge 2 commits into
Draft
ci: enforce quarto extensions render only what they serve#450amylin1249 wants to merge 2 commits into
amylin1249 wants to merge 2 commits into
Conversation
amylin1249
marked this pull request as draft
July 28, 2026 20:45
Contributor
Extension release summary😴 Changed but won't releaseThe following extensions have code changes but the manifest version hasn't been incremented:
If you intended to release these changes, update the See the contributing guide for details. |
dotNomad
force-pushed
the
quarto-served-document-lint
branch
from
August 14, 2026 00:28
c74a164 to
6d22e0b
Compare
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
force-pushed
the
quarto-served-document-lint
branch
from
August 14, 2026 00:34
6d22e0b to
563858d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.renderthe served document can silently flip away from the entrypoint (#392) while every build-time check stays green.Incorporates @dotNomad's review from #442:
.qmd,.ipynb, etc.), not just Markdown.lint-extensionchanges, matching the existing simple-extension_infrafilter.One point from that review is not fixed here, by design: a
quarto inspectfailure (including an invalid_quarto.yml) is still treated as "not a Quarto project" and passes silently. I tried tightening this, but it brokescript-r: inspecting its bare.Rentrypoint needsRscripton 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.