quarto/notebook: stop Quarto searching above the task directory for a project - #13077
Merged
pinin4fjords merged 1 commit intoOct 2, 2026
Merged
Conversation
… project Without a _quarto.yml in the task directory, Quarto walks up the parent directories looking for a project, and an unreadable folder there can make it pick an ancestor as the project root, so the render fails. Write a minimal _quarto.yml first (unless one was staged). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
What
When the task directory has no
_quarto.yml, Quarto walks up the parent directories running its project-type detectors. An unreadable folder counts as "exists" (quarto-dev/quarto-cli#14980), so an ancestor containing an unreadableconfig/and acontent/is taken for a Hugo project. Quarto then puts.quarto/there and the render fails.We hit this with nf-core/differentialabundance 2.0.0 on Seqera Platform with Fusion 2.5. There,
/fusion/s3/configand/fusion/s3/contentare other people's buckets, so every report failed withattempt to write a readonly database, including with-profile test. It can happen on any shared filesystem with unreadable entries above the work dir.This writes
project: { type: default }to_quarto.ymlin the task directory before rendering, unless one was staged viainput_files, so the search stops there.Checked
.qmdtwo levels below a folder with an unreadableconfig/and acontent/:.quartois created in that ancestor, and the render fails (exit 1, no HTML);.quartois created in the task directory, and the HTML is rendered.nf-core modules test-equivalentnf-test test modules/nf-core/quarto/notebook --profile dockeron x86_64: all 7 tests pass onmasterand on this branch, with snapshots unchanged._quarto.ymlworkaround, applied throughbeforeScript, fixed differentialabundance 2.0.0 reports on Fusion 2.5.14.PR checklist
nf-core modules test quarto/notebook --profile docker--profile singularity/conda: left to CI.🤖 Generated with Claude Code