metadata: refactor parsing into own module (CRAFT-311)
Metadata
Current evaluation
PR #408 was merged as 6ce96573, landing 6163e67e: metadata parsing moved to a dedicated Pydantic module, reused charmcraft.yaml logic, and became reusable beyond build/pack.
Resolution: closed resolved
Reason: PR #408 was approved and merged as merge commit 6ce96573; implementation commit 6163e67e completed the metadata parsing refactor.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Move metadata logic into its own module, migrating to pydantic
and re-using bits found for charmcraft.yaml config parser.
This will allow for re-use of metadata for commands other than
build/pack.
Signed-off-by: Chris Patterson <chris.patterson@canonical.com>
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | PR #408 was merged as 6ce96573, landing 6163e67e: metadata parsing moved to a dedicated Pydantic module, reused charmcraft.yaml logic, and became reusable beyond build/pack. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #408, moving metadata parsing into a dedicated Pydantic module and reusing charmcraft.yaml config logic for use beyond build/pack. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #408: refactored metadata parsing into a standalone module using Pydantic, reusing charmcraft.yaml config logic and enabling metadata reuse beyond build and pack. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged after approvals and CI. Refactored metadata parsing into a standalone module, migrating to Pydantic and reusing charmcraft config logic. Changes (+127/-22 lines across 5 files) enable metadata reuse across commands beyond build and pack. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a refactoring that extracts metadata parsing into a dedicated module using Pydantic and reuses charmcraft.yaml config parser logic, enabling metadata reuse across commands beyond build and pack. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #401 build: require metadata.yaml and parse on Builder init (CRAFT-301) | charmcraft | merged | PR #401 (CRAFT-301) merged: metadata.yaml parsing moved from handle_package() to Builder.__init__ for reuse, with an explicit missing-file error and new test; commit cd187c30, merge 6de20938. | |
| #2874 feat: mediate creation of metadata.yaml | charmcraft | merged | PR #2874 merged to charmcraft main (2 approvals): implements craft-application's package service API so metadata.yaml creation is mediated in Charm/rock layers, tracking CHARMCRAFT-723. |