project_loader: process stage package grammar
Metadata
Current evaluation
Merged. Moved stage package grammar processing to project_loader, creating a dedicated processor for part properties. Raw YAML is preserved for state tracking. Approved by one reviewer, passed CI, and modified 26 files.
Suggested action: —
No scores available.
Issue body
This PR makes more progress on #1492 by extracting the processing of the stage package grammar from the pluginhandler and placing it into the project_loader. This is done by creating an encapsulating grammar processor dedicated to the grammar in the part (with the vision of adding grammar support to more part properties in the future, e.g. `source`). The pluginhandler then uses this processor to extract grammar-powered properties, leaving the raw YAML alone for state tracking.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Moved stage package grammar processing to project_loader, creating a dedicated processor for part properties. Raw YAML is preserved for state tracking. Approved by one reviewer, passed CI, and modified 26 files. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged relocation of stage package grammar processing from the pluginhandler to the project_loader. A dedicated grammar processor now handles part grammar, enabling future property support while preserving raw YAML for state tracking. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged by kyrofa. Stage package grammar processing moved from pluginhandler to project_loader via a dedicated processor. This preserves raw YAML for state tracking while enabling grammar-powered properties and future support. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1500 grammar: move into project_loader | snapcraft | merged | Merged the stage package grammar extraction from pluginhandler into the refactored project_loader package. This structural change improves separation of concerns and establishes a generic foundation for broader YAML grammar usage. | |
| #1511 project_loader: support grammar on build-packages | snapcraft | merged | Merged: Added grammar support for build-packages at part and global levels. Approved by one reviewer, passed CI, and modified 19 files. Builds on issue #1492 and depends on PR #1509. | |
| #3360 project loader: advanced grammar support for lists | snapcraft | merged | Merged after approval and passing CI. The update refactors the project loader to process lists instead of sets, preserving ordering and supporting non-string primitives. Changes include GrammarProcessor updates, part grammar adjustments, and corresponding test modifications. | |
| #3350 project loader, schema: add advanced grammar support for build-environment | snapcraft | merged | Merged into master. Adds advanced grammar support for build-environment to the project loader and schema. Approved by one reviewer with 90.9% diff coverage. A minor plainbox unit test failure was noted but did not block the merge. | |
| #1504 project loader: refactor into package | snapcraft | merged | Merged a refactor moving the project loader into a dedicated package, relocating PartsConfig logic and the schema validator, and introducing a base error class. Modified 16 files to advance issue #1492. |