plugins: check if plugin properties are dirty
Metadata
Current evaluation
Merged after approval and CI. Implements dirty-checking for plugin properties to optimize pull and build steps. Adds property state tracking, maintains API compatibility, and allows plugin-specific overrides.
Suggested action: —
No scores available.
Issue body
Add plugin properties to the part state and allow the plugin to list properties to be used to verify if the pull or build steps are dirty.
This implementation ensures compatibility with the current plugin API and doesn't require changes in existing plugins. By default, all plugin properties will be verified against the previous build step state. This can be overridden by each plugin if needed.
The implementation is also designed to work with strict plugins where plugin properties changes may require a repull. In this case, each plugin must return the list of properties relevant to the pull step according to the offline build mode.
Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
CRAFT-1591
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after approval and CI. Implements dirty-checking for plugin properties to optimize pull and build steps. Adds property state tracking, maintains API compatibility, and allows plugin-specific overrides. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Implements plugin property tracking to detect dirty pull or build steps. Defaults to checking all properties for API compatibility, while allowing plugins to override checks or enforce repulls on property changes. Resolves CRAFT-1591. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #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. |