Vendor grammar logic into snapcraft
Metadata
Current evaluation
Advanced grammar was extracted to craft-grammar and adopted by Snapcraft in #3642 (merge 943d130c2), superseding the planned in-tree refactor.
Resolution: closed superseded
Reason: The requested standalone refactor was replaced by externalization to craft-grammar. Snapcraft adopted it through PR #3642, commit e448600fa, merged as 943d130c2.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Estimate: 1 day
Snapd’s snap.yaml supports an architectures keyword that defines the architectures on which that particular snap runs. Snapcraft currently supports the same keyword, and it acts as a pass-through, copying it into the snap.yaml. Now that build.snapcraft.io is a thing, we’d like to expand the architectures keyword to also serve the purpose of telling build.snapcraft.io which architectures to use for building, and on which architectures the resulting snap runs. The method for doing this will use the advanced grammar we already have. That’s pretty easy for us, but build.snapcraft.io is really what needs to parse this grammar, so part of this task is refactoring the grammar processing such that it’s standalone and available in pypi for them to use.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed superseded | Advanced grammar was extracted to craft-grammar and adopted by Snapcraft in #3642 (merge 943d130c2), superseding the planned in-tree refactor. | |
| stealth/space-bunny-alpha | — | closed stale | Grammar extraction for build.snapcraft.io was closed without implementation or a linked resolution after roughly nine years of inactivity. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without implementation. The proposal to vendor snapcraft's grammar logic into a standalone PyPI package for build.snapcraft.io was abandoned or superseded, with no pull requests or resolution details recorded. | |
| qwen/qwen3.6-35b-a3b | — | — | Refactoring snapcraft's architecture grammar logic for standalone PyPI distribution to build.snapcraft.io was closed without implementation. Zero comments indicate the task was abandoned or superseded. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed and abandoned due to prolonged inactivity. The task to vendor snapcraft grammar logic for build.snapcraft.io received no comments or implementation, leaving it unresolved. | |
| qwen/qwen3.6-35b-a3b | — | — | Abandoned. The proposal to refactor and vendorize snapcraft's grammar logic for external use was closed without implementation or discussion due to inactivity. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | The proposal to vendor snapcraft's grammar logic for build.snapcraft.io was abandoned due to prolonged inactivity. No implementation or pull request was created. |
Update history
No update history recorded yet.
Related work
-
Superseded By:
snapcraft#3642
(confidence 96%)
The external package replaced Snapcraft's embedded grammar implementation, with migration commit e448600fa.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #3 grammar: import from Snapcraft (CRAFT-818) | craft-grammar | merged | Merged PR #3 (69a12dc) imported the grammar from Snapcraft, updated lint/type tooling, and decoupled GrammarProcessor from ProjectOptions. | |
| #6064 Extend advanced grammer to all keys of snapcraft | snapcraft | open | Advanced grammar remains limited to selected keys, limiting clean architecture-specific apps, part omission, and plugin parameters. The feature is untriaged; plugin-parameter support is tracked in craft-application #985. | |
| #5462 docs: migrate 'Snapcraft advanced grammar' | snapcraft | merged | Merged the advanced grammar documentation migration in commit b7a56461b; follow-up #5468 restored the Read the Docs build in 0157e5b15. | |
| #3642 grammar: migrate to external package (CRAFT-819) | snapcraft | merged | Merged: grammar plugin moved out of the snapcraft tree into the external craft-grammar package (CRAFT-819), deleting ~2,439 lines. Merge commit 943d130c2. | |
| #328 fix: allow a mix of strings and dicts for grammar | craft-application | merged | Merged craft-application#328 as commit 2a1115d0, allowing grammar lists to mix strings and dicts; released in 2.6.2 and regression-tested by snapcraft#4768. | |
| #4716 test(grammar): new grammar support | snapcraft | closed | PR #4716 (unit tests for new grammar support) was approved but closed unmerged; maintainer @mr-cal closed it because craft-application#296 was merged/released and equivalent Snapcraft tests landed in merged #4768 (c76e626). | |
| #985 Support Snapcraft advanced grammar in plugin parameters? | craft-application | open | Enhancement to apply advanced grammar to dynamically named plugin parameters; acknowledged as valid, clearly reproduced, and still awaiting implementation and tests. | |
| #4764 Regression: Advanced grammar cannot be combined with other data | snapcraft | closed | Fixed by merged snapcraft#4768 (c76e62671), adding regression coverage for mixed grammar and standard list entries; parsing was fixed in craft-application 2.6.2. | |
| #3652 parts: support for grammar parsing | snapcraft | merged | Merged #3652 via commit cfbe60ac4 (merge 7708b7261), adding Craft Grammar parsing for part source, package, environment, and snap fields. |