← Back to issue list

project loader: refactor into package

View original Github issue

Metadata

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

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.
74%
#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.
72%
#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.
70%
#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.
70%