Regression: plugin not registered: 'dotnet'
Metadata
Current evaluation
Fixed in Snapcraft 8.2.11. The dotnet plugin registration regression for core22 was resolved and released to latest/candidate and latest/stable on June 17, 2024.
Suggested action: —
No scores available.
Issue body
### Bug Description
Building an application with the `dotnet` plugin on `core22` currently errors out with:
```
Bad snapcraft.yaml content:
- plugin not registered: 'dotnet' (in field 'parts.dotnet-installer')
```
It was previously possible to run snapcraft on the same `snapcraft.yaml` file.
### To Reproduce
We can use the [canonical/dotnet-snap](https://github.com/canonical/dotnet-snap) application as an example:
```
$ git clone git@github.com:canonical/dotnet-snap.git
$ cd dotnet-snap
$ snapcraft --use-lxd --debug --verbose
```
### Environment
- Ubuntu 24.04 LTS
- Snapcraft 8.2.8
- Using LXD
- `core22` snap (I haven't tested with other bases)
### snapcraft.yaml
```shell
name: dotnet
base: core22
version: 8.0.4
summary: .NET CLI tools, SDK and runtime
description: |
.NET is the free, open-source, cross-platform framework for building modern
apps and powerful cloud services that work on Android, iOS, GNU/Linux, macOS
and Windows.
.
This Snap also includes a powerful installer tool that allows you to manage
your .NET installation and gives you the possibility to install as many
multiple versions of .NET side-by-side as you want, as well as receive
monthly security and feature updates whenever they become available.
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: classic
package-repositories:
- type: apt
ppa: dotnet/snaps
priority: always
parts:
pre-reqs:
plugin: nil
build-attributes:
- enable-patchelf
stage-packages:
- libc6
- libgcc-s1
- libgssapi-krb5-2
- libicu70
- liblttng-ust1
- libssl3
- libstdc++6
- libunwind8
- zlib1g
dotnet-installer:
plugin: dotnet
dotnet-build-configuration: Release
dotnet-self-contained-runtime-identifier: linux-x64
source: .
build-packages:
- dotnet-sdk-8.0
override-stage: |
craftctl default
patchelf --set-interpreter /snap/dotnet/current/lib64/ld-linux-x86-64.so.2 Dotnet.Installer.Console
patchelf --force-rpath --set-rpath \$ORIGIN/netcoredeps:/snap/dotnet/current/usr/lib/x86_64-linux-gnu Dotnet.Installer.Console
prime:
- Dotnet.Installer.Console
- Configuration/*
- Scripts/*
dotnet-host:
plugin: nil
build-packages:
- patchelf
stage-packages:
- dotnet-hostfxr-8.0
override-stage: |
craftctl default
patchelf --set-interpreter /snap/dotnet/current/lib64/ld-linux-x86-64.so.2 usr/lib/dotnet/dotnet
patchelf --force-rpath --set-rpath /snap/dotnet/current/usr/lib/x86_64-linux-gnu usr/lib/dotnet/dotnet
patchelf --force-rpath --set-rpath /snap/dotnet/current/usr/lib/x86_64-linux-gnu usr/lib/dotnet/host/fxr/8.0.4/libhostfxr.so
netstandard-targeting-pack:
plugin: nil
stage-packages:
- netstandard-targeting-pack-2.1-8.0
apps:
dotnet:
command: Scripts/dotnet-launcher.sh
environment:
DOTNET_INSTALL_DIR: $SNAP_COMMON/dotnet
LIMITS_PATH: $SNAP/Configuration/limits.json
SERVER_URL: https://raw.githubusercontent.com/canonical/dotnet-snap/main/manifest/
```
### Relevant log output
```shell
2024-05-29 10:06:56.724 Starting snapcraft, version 8.2.8
2024-05-29 10:06:56.724 Log verbosity level set to BRIEF
2024-05-29 10:06:56.727 Falling back from craft-application to snapcraft.
2024-05-29 10:06:56.728 lifecycle command: 'pack', arguments: Namespace(destructive_mode=False, use_lxd=True, debug=True, enable_manifest=False, manifest_image_information=None, bind_ssh=False, build_for=None, http_proxy=None, https_proxy=None, ua_token=None, enable_experimental_ua_services=False, enable_experimental_plugins=False, enable_experimental_extensions=False, enable_developer_debug=False, enable_experimental_target_arch=False, target_arch=None, provider=None, directory=None, output=None)
2024-05-29 10:06:56.728 command: pack, arguments: Namespace(destructive_mode=False, use_lxd=True, debug=True, enable_manifest=False, manifest_image_information=None, bind_ssh=False, build_for=None, http_proxy=None, https_proxy=None, ua_token=None, enable_experimental_ua_services=False, enable_experimental_plugins=False, enable_experimental_extensions=False, enable_developer_debug=False, enable_experimental_target_arch=False, target_arch=None, provider=None, directory=None, output=None)
2024-05-29 10:06:56.740 CPU count (from process affinity): 16
2024-05-29 10:06:56.740 Invalid SNAPCRAFT_MAX_PARALLEL_BUILD_COUNT ''
2024-05-29 10:06:56.740 Running on amd64 for amd64
2024-05-29 10:06:56.741 Bad snapcraft.yaml content:
- plugin not registered: 'dotnet' (in field 'parts.dotnet-installer')
2024-05-29 10:06:56.743 Traceback (most recent call last):
2024-05-29 10:06:56.743 File "/snap/snapcraft/11772/lib/python3.10/site-packages/snapcraft/application.py", line 368, in main
2024-05-29 10:06:56.743 return app.run()
2024-05-29 10:06:56.743 File "/snap/snapcraft/11772/lib/python3.10/site-packages/craft_application/application.py", line 488, in run
2024-05-29 10:06:56.743 dispatcher = self._get_dispatcher()
2024-05-29 10:06:56.743 File "/snap/snapcraft/11772/lib/python3.10/site-packages/snapcraft/application.py", line 227, in _get_dispatcher
2024-05-29 10:06:56.743 raise errors.ClassicFallback()
2024-05-29 10:06:56.743 snapcraft.errors.ClassicFallback
2024-05-29 10:06:56.743
2024-05-29 10:06:56.743 During handling of the above exception, another exception occurred:
2024-05-29 10:06:56.743 Traceback (most recent call last):
2024-05-29 10:06:56.743 File "/snap/snapcraft/11772/lib/python3.10/site-packages/snapcraft/models/project.py", line 876, in unmarshal
2024-05-29 10:06:56.743 project = Project(**data)
2024-05-29 10:06:56.743 File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
2024-05-29 10:06:56.743 pydantic.error_wrappers.ValidationError: 1 validation error for Project
2024-05-29 10:06:56.743 parts -> dotnet-installer
2024-05-29 10:06:56.743 plugin not registered: 'dotnet' (type=value_error)
2024-05-29 10:06:56.743 Full execution log: '/home/mateus/.local/state/snapcraft/log/snapcraft-20240529-100656.724103.log'
```
### Additional context
_No response_
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Fixed in Snapcraft 8.2.11. The dotnet plugin registration regression for core22 was resolved and released to latest/candidate and latest/stable on June 17, 2024. | |
| qwen/qwen3.6-35b-a3b | — | — | Fixed a regression where the dotnet plugin failed to register on core22. Resolved in snapcraft 8.2.11, released to latest/candidate on June 13, 2024, and scheduled for latest/stable on June 17, 2024. | |
| qwen/qwen3.6-35b-a3b | — | — | Fixed in snapcraft 8.2.11. The dotnet plugin registration regression affecting core22 builds was resolved and released to latest/candidate, with a stable release on June 17, 2024. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Fixed the dotnet plugin registration regression for core22 builds. The resolution was included in snapcraft 8.2.11 and released to latest/candidate, with a stable release on June 17, 2024. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Fixed the dotnet plugin registration regression on core22 in snapcraft 8.2.11. The update was deployed to latest/candidate and scheduled for stable release on June 17, 2024. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1857705 The dotnet plugin does not support the current version of .Net Core | snapcraft (launchpad) | open | Request to update the snapcraft dotnet plugin to support .NET Core 3.0+ and bases beyond core16. The plugin has since been fully reworked in snapcraft 8.x to support core22+ and modern .NET SDKs, making this obsolete. |