feat: add Snapcraft-specific Poetry plugin
Metadata
Current evaluation
Merged a Snapcraft-specific Poetry plugin that extracts shared Python logic into a python_common module. Enabled for core22 and core24, resolves #5025, approved by two reviewers, and passed CI checks.
Suggested action: —
No scores available.
Issue body
The plugin has the same behavior and restrictions as the Python plugin with regards to base-dependent behavior, symlink handling, etc.
Therefore, this common behavior is extracted into a new "python_common" module, used by both plugins. This approach is also taken for the reference docs - the requirement of staging a Python interpreter (or not) is the same for both plugins.
Enabled for core22 and core24.
Fixes #5025
- [ ] Have you followed the [guidelines for contributing](https://github.com/canonical/snapcraft/blob/main/CONTRIBUTING.md)?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `tox run -m lint`?
- [ ] Have you successfully run `tox run -e test-py310`? (supported versions: `py39`, `py310`, `py311`, `py312`)
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged a Snapcraft-specific Poetry plugin that extracts shared Python logic into a python_common module. Enabled for core22 and core24, resolves #5025, approved by two reviewers, and passed CI checks. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a new Snapcraft-specific Poetry plugin that extracts shared Python plugin logic into a python_common module. Enabled for core22 and core24, resolving issue #5025. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a new Snapcraft-specific Poetry plugin that extracts shared Python plugin logic into a python_common module. Enabled for core22 and core24, resolving issue #5025. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #717 feat: add Rockcraft-specific Poetry plugin | rockcraft | merged | Merged the Rockcraft-specific Poetry plugin, resolving issue #701. Shared Python plugin logic was extracted into a python_common module. Approved by two reviewers, passed CI, and modified 19 files. | |
| #1899 feat: add Python and Poetry plugins | charmcraft | merged | Merged. Adds Charmcraft-specific Python and Poetry plugins for craft-parts, adjusting venv paths, using system pip, and auto-including src/lib dirs. Changes span 24 files with 841 additions and 44 deletions, approved by two reviewers. | |
| #6020 Most Python-based snaps can't build on core26 | snapcraft | closed | Resolved in PR #6089 and released in snapcraft 8.14.3. The python plugin now correctly handles core26 builds without assuming a system interpreter. Uv and poetry plugins remain unaddressed and will be fixed in future updates. | |
| #4044 plugins: add snapcraft python plugin | snapcraft | merged | Merged into main. Introduces a Snapcraft-specific Python plugin that subclasses Craft-parts to set venv symlinks based on the runtime environment. Approved by reviewers, passed CI, and rebased prior to merge. |