← Back to issue list

grammar: move into project_loader

View original Github issue

Metadata

Project
snapcraft
Number
#1500
Type
pull request
State
merged
Author
kyrofa
Labels
—
Created
Updated
Closed

Current evaluation

Merged as ed332f0d4, moving the stage-package grammar package from snapcraft/internal/pluginhandler into project_loader — a pure relocation, part of the #1492 effort to make grammar reusable across snapcraft.yaml.

Resolution: closed resolved

Reason: PR #1500 was merged into master as commit ed332f0d4, relocating snapcraft/internal/pluginhandler/stage_package_grammar to snapcraft/internal/project_loader/grammar (plus setup.py and import tweaks). It was rebased on top of the project_loader package refactor in PR #1504 (80630158d), as requested in review.

Evaluated by: mr-cal-bot

No scores available.

Issue body

This PR makes progress on #1492 by extracting the stage package grammar from the pluginhandler and placing it in project_loader. This is the first step toward making the grammar more generic and used in more of the YAML. Other than moving the grammar around (and the small import tweaks necessary to continue working with slightly more generic names) this PR makes no changes.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged as ed332f0d4, moving the stage-package grammar package from snapcraft/internal/pluginhandler into project_loader — a pure relocation, part of the #1492 effort to make grammar reusable across snapcraft.yaml.
stealth/space-bunny-alpha — closed resolved Merged in #1500 (ed332f0d4), moving stage-package grammar from pluginhandler into project_loader as groundwork for reusable YAML grammar.
qwen/qwen3.6-35b-a3b — — 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.
qwen3.6-35b-a3b-mtp-q6 — — Merged the stage package grammar extraction from pluginhandler to project_loader. After fixing a setup.py path error, the author refactored project_loader into a package and relocated the grammar there for improved separation of concerns.

Update history

No update history recorded yet.

Related work

  • Related To: snapcraft#1492 (confidence 95%)

    Tracking issue this PR explicitly makes progress on (generic grammar for more of the YAML, starting with build-packages, then source).

  • Related To: snapcraft#1504 (confidence 95%)

    Prior PR #1504 (commit 80630158d) refactored project_loader into a package; this PR was rebased on it so the grammar could live there.

  • Superseded By: snapcraft#1509 (confidence 70%)

    Follow-up PR #1509 (commit 82e27706d) actually wired the relocated grammar into project_loader to process stage-packages, completing the functional half of this refactor.

Related issues

Issue Project State Summary Similarity
#1509 project_loader: process stage package grammar snapcraft merged Merged #1509 in commit 82e27706d, moving stage-package grammar processing from pluginhandler into project_loader while retaining raw YAML for state tracking.
78%
#1504 project loader: refactor into package snapcraft merged Merged in snapcraft#1504 via commit 80630158d, creating a project-loader package and moving PartsConfig, schema validation, and loader errors into it.
72%
#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.
72%
#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.
72%