config dump omits per-file overlays and inherited default-component-config
Los mantenedores suelen responder en 2 días
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Summary
azldev config dump presents itself as showing the "fully resolved project configuration", but it stops at the file-level merge and does not run the per-component resolver. As a result, two important sources of effective configuration are invisible in the dump even though builds honor them:
overlay-filesexpansion — overlays loaded fromoverlays/*.overlay.toml(per-file overlay format, docs) never appear incomponents.<name>.overlays.- Inherited
default-component-config— fields injected from project/distro/component-group defaults never appear on the concrete component.
Downstream commands (build, render, prepare-sources, diff-sources) do run the resolver (applyInheritedDefaultsToComponent → ExpandResolvedOverlayFiles), so the artifacts they produce are correct. The gap is display-only, but it makes config dump misleading as an authoring/debugging aid.
Repro
Given a component using the per-file overlay format:
# base/comps/GraphicsMagick/GraphicsMagick.comp.toml
[components.GraphicsMagick]
overlay-files = ["overlays/*.overlay.toml"]
# base/comps/GraphicsMagick/overlays/0001-drop-libheif-build-dependency.overlay.toml
[metadata]
category = "azl-dep-missing-workaround"
[[overlays]]
type = "spec-remove-tag"
tag = "BuildRequires"
value = "libheif-devel"
Then:
$ azldev config dump -f json | jq '.components.GraphicsMagick.overlays'
null
But azldev component list -p GraphicsMagick -O json | jq '.[0].Overlays' shows the overlay, and azldev component render -p GraphicsMagick correctly removes the BuildRequires: libheif-devel line from the rendered spec.
Impact
- Confuses users during authoring — a config that clearly "works" appears empty in the dump, prompting incorrect "my overlays aren't being applied" diagnoses.
- Blocks the documented pattern of using
azldev config dump -q -O json | jq ...for ad-hoc queries about effective component config (works today only for fields authored inline). - Makes the MCP
config-dumptool less useful for coding agents that ask "what is the effective config for component X?".
Suggested fix
Add a flag to config dump that runs the per-component resolver before serialization. Some options:
- A (preferred):
azldev config dump --resolved(or--expand) — off by default to preserve today's round-trippable output; when set, iterates components through the resolver and replaces thecomponentsmap with resolved copies (including expandedoverlaysand merged inherited defaults). - B: Always dump the resolved view; drop the round-trippability guarantee. Breaking change; probably not worth it.
- C: Documentation-only — clarify in
Longhelp and config-file.md thatconfig dumpis pre-resolver and point users tocomponent list -O jsonfor the resolved view. Cheapest fix but doesn't help the MCP-tool case.
Happy to send a PR for option A if the team agrees on the shape.
Related code
- Dump entry point:
internal/app/azldev/cmds/config/dump.go— marshals rawenv.Config(). - Resolver used by build/render/prepare-sources:
internal/app/azldev/core/components/resolver.go—Resolver.FindComponents→getComponentFromNameAndSpecPath→applyInheritedDefaultsToComponent→ExpandResolvedOverlayFiles. - Feature introduced by PR #256 (per-file overlays / inherited
overlay-files); this gap has existed since then.
- Lenguaje dominante
- Go
- Estrellas
- 18
- Forks
- 29
- Merge medio
- 4 d 19 min
- PR fusionados (30 d)
- 17
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/azure-linux-dev-tools
-
`patch-add` overlay appends `PatchN:` tag at end of preamble instead of grouping with existing Patch tagsPosiblemente ocupada @IzanVil la tomó hace 24 días. Abiertoarea: overlays enhancement priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
microsoft/azure-linux-dev-tools#284 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
microsoft/azure-linux-dev-tools#385 ·
Los mantenedores suelen responder en 2 días
-
[Bug]: azldev image boot incorrectly treats --image-path and --format as mutually exclusivePosiblemente ocupada @dmcilvaney la tomó hace 7 días. Abiertobug
microsoft/azure-linux-dev-tools#376 · 1 reacción · 2 asignados ·
Los mantenedores suelen responder en 2 días
-
[Feature]: Add Customization for Compression performancePosiblemente ocupada @Tonisal-byte la tomó hace 7 días. Abiertoenhancement
microsoft/azure-linux-dev-tools#375 · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
microsoft/azure-linux-dev-tools#374 ·
Los mantenedores suelen responder en 2 días
Todos los issues de microsoft/azure-linux-dev-tools
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
grafana/tempo-operator#1691 ·
Los mantenedores suelen responder en 1 día
-
fix: presentation.go with mcp-table.go: the message for each MCP server comes backPosiblemente ocupada @mge1512 la tomó hoy. Abiertobug
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
mark3labs/kit#242 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Project submission: Sno StationAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
slavakurilyak/awesome-ai-agents#827 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
bug P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
mpyw/declscope#262 · 1 comentario ·
Los mantenedores suelen responder en 1 día