plugins: add plugin environment validation (CRAFT-611)
Metadata
Current evaluation
Added plugin environment validators to verify system requirements before building parts. Merged after reviewer approval and passing CI checks, modifying 14 files with 629 additions and 23 deletions.
Suggested action: —
No scores available.
Issue body
Plugins may require certain environment elements to be present in
order to build a part, regardless of how these elements were installed
on the system. For example, a compiler may have been installed from a
deb package, a snap, built from sources or even built by a different
part. This commit adds plugin environment validators, allowing plugins
to verify if the system environment is correct before building a part.
**Note to reviewers**: see the integration test for use cases.
Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Added plugin environment validators to verify system requirements before building parts. Merged after reviewer approval and passing CI checks, modifying 14 files with 629 additions and 23 deletions. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged plugin environment validators to verify system requirements before building parts. Reviewers approved the implementation and integrated it into the codebase. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #221 plugins: make plugin options available in validator | craft-parts | merged | Merged changes that expose plugin options to environment validators. Approved by one reviewer, passed CI checks, and updated 11 files (+101/-35 lines). | |
| #71 plugins: check presence of required part properties (CRAFT-74) | craft-parts | merged | Merged after two approvals and passing CI. Replaces manual verification of required plugin properties, such as source, with Pydantic validation. Updated nine files (+78/-25 lines) to enforce property requirements during plugin configuration. | |
| #197 plugins: validate dependencies | craft-parts | merged | Merged after approval and CI. Normalized plugin dependency validation logic in the validator class to prepare for conda, npm, and rust plugins. Refactored 7 files (+75/-121 lines) with no functional changes. | |
| #224 plugin: plugin validation with only one part dep | craft-parts | merged | Merged after reviewer approval and passing CI. Updated plugin validation for single-part dependencies and fixed node verification to skip checks when nodes are included. The provisional solution was accepted for integration. |