plugins: introduce v2.GoPlugin
Metadata
Current evaluation
Merged after approval and CI checks. Introduces v2.GoPlugin for Go plugin support requiring go.mod and adds .get_build_snaps as an abstract method to PluginV2. Changes span 26 files with 366 additions and 49 deletions.
Suggested action: —
No scores available.
Issue body
The support added requires the project uses go.mod.
This also adds .get_build_snaps as an abstractmethod to PluginV2.
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 approval and CI checks. Introduces v2.GoPlugin for Go plugin support requiring go.mod and adds .get_build_snaps as an abstract method to PluginV2. Changes span 26 files with 366 additions and 49 deletions. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged introduction of v2.GoPlugin for Go projects using go.mod. Added .get_build_snaps as an abstract method to PluginV2. Directly merged by maintainer sergiusens without review comments. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged introduction of v2.GoPlugin to enable Go plugin support, mandating go.mod usage and adding .get_build_snaps as an abstract method to PluginV2. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #78 plugins: add go plugin (CRAFT-48) | craft-parts | merged | Merged a Go plugin for go.mod-based projects, adapted from Snapcraft V2. Approved by two reviewers, passed CI, and introduced 425 additions across seven files. Co-authored by Sergio Schvezov. | |
| #997 plugins: update go plugin to use get_build_properties() | snapcraft | merged | Merged after approval and passing CI. Updates the Go plugin to use get_build_properties(), adjusts the schema test, and adds unit tests for get_pull_properties() and get_build_properties(). Changes successfully integrated. | |
| #271 plugins: support "go generate" in go parts | craft-parts | merged | Merged. Integrates go generate into the GoPlugin build step to execute code generation prior to compilation. Approved by a reviewer, passed CI checks, and modified five files. The change is backward compatible and resolves CRAFT-1316. | |
| #1802256 go plugin: support Go modules | snapcraft (launchpad) | open | Feature request for first-class Go modules support in the Go plugin. Now implemented: craft-parts' go plugin is go.mod-based (craft-parts#78), and snapcraft#3133 added go.mod support to the old v1 plugin. No activity for ~8 years. | |
| #3061 plugins: introduce v2.RustPlugin | snapcraft | merged | Merged introduction of v2.RustPlugin to the plugins module. Approved by one reviewer. Updated 26 files with 275 additions and 76 deletions, successfully integrating the new Rust plugin version into the codebase. | |
| #2323 go plugin: support for bases | snapcraft | merged | Merged. Introduces base support to the Go plugin, prioritizing the Go snap from the Snap Store and enabling golang-go installation on supported bases. Approved by reviewer and passed all CI checks. | |
| #3133 go v1 plugin: go.mod support for 1.11 and 1.12 | snapcraft | merged | Merged changes adding limited Go Modules support for Go 1.11 and 1.12. Introduces a _get_module helper for build target resolution and a one-time compatibility warning. Replaces PR #3132 after approval. | |
| #3037 plugins: introduce v2.CMakePlugin | snapcraft | merged | Merged introduction of v2.CMakePlugin and consolidation of the v2 plugin spread test suite to streamline future development. Approved by one reviewer, passed CI, and modified 16 files with 196 additions and 23 deletions. | |
| #2194 plugins: do not install go debs if go snap is used | snapcraft | merged | Merged a fix to the go plugin that skips installing the golang-go deb package when a go build-snap is defined, resolving PATH conflicts. Approved by reviewers, passed CI with full coverage, and integrated into master. |