many: refactor snapcraft.yaml loading out of load_config
Metadata
Current evaluation
Merged a refactor separating raw snapcraft.yaml loading from validated processing within load_config. Approved by reviewer, passed CI checks, and integrated into master with 95.54% diff coverage.
Suggested action: —
No scores available.
Issue body
In order to have separated logical bits and clear overlaying
communicated a logical separation is introduced between the
actual snapcraft loading in raw form and its processed/validated
form.
LP: #1775849
Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged a refactor separating raw snapcraft.yaml loading from validated processing within load_config. Approved by reviewer, passed CI checks, and integrated into master with 95.54% diff coverage. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into master as PR #2160. Refactored snapcraft.yaml loading out of load_config to separate raw parsing from processed validation. Codecov reported 95.54% diff coverage. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged refactoring that extracts raw snapcraft.yaml parsing from load_config into a separate processed validation step. The change adds two files, increases code lines by 24, and slightly reduces overall coverage by 0.06%. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #146 Syntax of snapcraft.yaml (1.x) | snapcraft | merged | Merged after rebasing to resolve diff conflicts and squashing commits. The pull request updates snapcraft.yaml (1.x) syntax and received final approval before integration. | |
| #1407 recording: record the original snapcraft.yaml | snapcraft | merged | Merged to record the original snapcraft.yaml. Approved by one reviewer, modified 6 files with 91 additions and 31 deletions. Author noted the change requires PR #1406. | |
| #3526 project: validate snapcraft yaml before using it (CRAFT-55) | snapcraft | closed | Merged into master. Moves snapcraft YAML validation to get_project() to prevent errors during extension application and JSON schema checks. Approved by two reviewers. | |
| #2781 yaml_utils: move _load_yaml from project for re-use (and add tests) | snapcraft | merged | Merged. Moved _load_yaml to yaml_utils as load_yaml_file, added tests, and improved error handling to raise YamlValidationError. Approved, passed CI, and changed 3 files. Logic will be reused for snapcraft config files. | |
| #2734 SnapcraftError refactoring | snapcraft | merged | Refactored SnapcraftError across four files, adding 279 lines and removing 26. Approved by one reviewer and merged into the codebase. | |
| #1278 recording: save the snapcraft.yaml in the resulting snap | snapcraft | merged | Merged. Saves snapcraft.yaml to prime/snap in the resulting snap. Approved by one reviewer with passing CI and 100% diff coverage. Unresolved comments remain, but the implementation is accepted as a starting point. | |
| #1141 parser: use the project loader code to find the origin's snapcraft.yaml | snapcraft | merged | Merged a refactor replacing custom snapcraft.yaml detection with existing project_loader code, resolving LP bug #1665007. The author addressed reviewer feedback on commit formatting and conventions before final approval. | |
| #2283 snapcraft snap: refactor override-build into a script | snapcraft | merged | Merged refactoring that extracts override-build into a standalone script to reduce snapcraft.yaml duplication and support internal vendoring. Approved by reviewer, passed CI, and modified two files. | |
| #3637 meta: generate basic snap.yaml (CRAFT-801) | snapcraft | merged | Merged into snapcraft/7.0, adding automatic generation of a basic snap.yaml to enable snap packing. Approved by a reviewer, passed CI, and increased test coverage by 1.16%. | |
| #204 Update snapcraft.yaml | charmcraft | merged | Merged updates to snapcraft.yaml by markshuttle. Applied text changes for snapcraft.io and snap users, approved by two reviewers with zero unresolved comments. Diff added 18 lines and removed 14 across one file. |