Profile key has no effect here
profile: key appears in a file that does not contribute profile configuration, and is ignored.
Q-5-22 — Profile key has no effect here
A
profile:key appears in a file that does not contribute profile configuration, and is ignored.
What this means
Profiles decide which configuration files get merged. That makes profile configuration itself a chicken-and-egg problem: it cannot come from a file that was selected by a profile, because the selection has already happened by then.
So Quarto reads profile configuration from a fixed place:
| File | Contributes |
|---|---|
_quarto.yml
|
all of profile:
|
_quarto.yml.local
|
profile.default only
|
_quarto-<name>.yml
|
nothing |
A profile: key in an overlay file is ignored entirely — the overlay
was chosen because a profile was active, so it cannot influence which
profiles are active. In _quarto.yml.local, profile.default is
honored (that is how you set a personal default without touching the
shared config), but profile.group is not: groups define the project’s
profile structure and belong in the shared file.
Why this happens
- Copying a
profile:block into an overlay while factoring configuration out of_quarto.yml. - Trying to chain profiles — having
_quarto-staging.ymlactivate a further profile. This is not supported by design. - Putting
profile.groupin_quarto.yml.local, usually while experimenting with a new group locally.
How to fix
Move the profile: block to _quarto.yml:
# _quarto.yml
project:
type: website
profile:
default: development
group:
- [production, staging, development]and let the overlay carry only the configuration that profile selects:
# _quarto-production.yml
project:
output-dir: _site-productionTo set a personal default without changing the shared configuration,
_quarto.yml.local is the right place — just default, not group:
# _quarto.yml.local
profile:
default: development