plugins: introduce v2.PluginV2 and v2.NilPlugin
Metadata
Current evaluation
Merged after introducing v2.PluginV2 and v2.NilPlugin classes. Extended PluginHandler to support the new plugin version, added required attributes, and removed obsolete state file migration code. Author resolved initial CI failures prior to merge.
Suggested action: —
No scores available.
Issue body
There's just enough scaffolding in place to allow for the plugin to
load.
PluginHandler has been extended to determine when a PluginV2 is being
used (PluginHandler should be renamed to PartHandler).
Some extra attribute were added to PluginV2 to minimize the changes
required in PluginHandler.
Old code handling state file migration in PluginHandler._do_build was
removed as that was done before the migration to bases (meaning that
no base using Snapcraft project needs this).
Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>
- [ ] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `./runtests.sh static`?
- [ ] Have you successfully run `./runtests.sh tests/unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after introducing v2.PluginV2 and v2.NilPlugin classes. Extended PluginHandler to support the new plugin version, added required attributes, and removed obsolete state file migration code. Author resolved initial CI failures prior to merge. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Introduces v2.PluginV2 and v2.NilPlugin, extends PluginHandler, and removes obsolete state file migration logic. Reported CI failures were resolved by the author prior to merge. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged after fixing initial CI failures. Introduces v2.PluginV2 and v2.NilPlugin, extends PluginHandler, and removes obsolete state migration code to establish plugin loading scaffolding. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #27 plugins: add the nil plugin | craft-parts | merged | Merged the nil plugin to handle parts with no source. Approved by two reviewers, passed CI checks, and introduced 109 lines across two files. | |
| #3118 plugins: add support for local v2 plugins (core20) | snapcraft | merged | Merged after approval and passing CI. Adds local v2 plugin support (core20) via spread tests for PluginV2 and the nil v2 plugin. Approved as an enhancement following minor naming clarifications. | |
| #3059 plugins: introduce v2.MesonPlugin | snapcraft | merged | The v2.MesonPlugin feature was approved by one reviewer and successfully merged. The commit added 216 lines and removed 4 across 10 files, finalizing the new plugin implementation. |