project loader: refactor into package
Metadata
Current evaluation
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.
Suggested action: —
No scores available.
Issue body
This PR makes progress on #1492, paving the way for the grammar to be moved into the project loader instead of pluginhandler. It moves `project_loader` into its own package dedicated to loading the project. IT also moves the `PartsConfig` logic in there as well, but leaves the remote parts logic out. Also, since the schema validator was only ever used from project loader, the schema was moved into the `project_loader` package as well. Finally, it creates a base class for project-loading-related errors, and modified the current errors to inherit from that.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a refactor moving the project loader, PartsConfig logic, and schema validator into a dedicated package. Introduces a base class for project-loading errors, advancing progress on issue #1492. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a refactor moving the project loader into a dedicated package, relocating PartsConfig logic and the schema validator. Introduces a base class for project-loading errors, advancing issue #1492. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #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. | |
| #2304 project loader: remove remote parts support for bases | snapcraft | merged | Merged removal of remote parts support for bases. The project loader now errors on undefined parts or missing plugins. CLI commands update, search, and define were removed. Approved and merged after passing CI. | |
| #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. | |
| #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. |