project_loader: support grammar on build-packages
Metadata
Current evaluation
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.
Suggested action: —
No scores available.
Issue body
Currently Snapcraft only supports grammar-powered stage-packages. This PR makes another good chunk of progress on #1492 by adding support for grammar-powered build-packages as well, both at the part-level and global.
Note that this PR depends upon #1509, but was proposed anyway as I'm leaving for a few days. It also may give the other PR more context.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Added grammar support for build-packages at part and global levels in Snapcraft. Advances issue #1492 and depends on PR #1509. Maintainer approved and suggested future refactoring for build tools processing. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged implementation adding grammar support for build-packages at part and global levels. Extends existing stage-package grammar functionality. Relies on PR #1509. Maintainer approved and noted future refactoring opportunities for build tools processing. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1509 project_loader: process stage package grammar | snapcraft | merged | 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. | |
| #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. | |
| #1059 pluginhandler: support more complex stage-packages. | snapcraft | merged | Merged. Adds a complex grammar for stage-packages using on and try/else clauses to filter packages by selectors like target architecture, resolving LP #1637282. Approved by reviewer and passed CI. | |
| #3362 project loader grammar: do not transform build-packages | snapcraft | merged | Merged a maintainer change to the project loader grammar that stops transforming build-packages. This prevents architecture conflicts and resolves undocumented behavior while preserving compatibility with explicit target-arch configurations. | |
| #184 build: add craft_grammar_docs sub-package | craft-grammar | merged | Merged the addition of the craft_grammar_docs sub-package to the build system. Approved by two reviewers and cleared CI checks. The change updates four files with minimal build configuration adjustments. | |
| #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. |