meta: do not set snapcraft-runner when adapter is "none"
Metadata
Current evaluation
Merged PR #2853 fixed app metadata handling so adapter: none does not add snapcraft-runner to command-chain; full and legacy adapters still do (commit 9599497fb).
Resolution: closed resolved
Reason: PR #2853 was merged as commit 9599497fb. It updated generation logic and tests so adapter: none leaves the command and command-chain untouched.
Evaluated by: mr-cal-bot
No scores available.
Issue body
When adapter == "none", snapcraft should not modify the
command or command-chain. However snapcraft presently
ignores the adapter setting when it comes time to set
the command-chain.
Instead, honor when adapter is "none".
With these changes, given a snapcraft yaml:
```
<snipped>
apps:
adapter-none:
command: test-cmd
adapter: none
adapter-full:
command: test-cmd
adapter: full
adapter-legacy:
command: test-cmd
adapter: legacy
wrapped-default:
command: test-cmd --test "@"
<snipped>
```
Will now yield:
```
apps:
adapter-full:
command: test-cmd
command-chain:
- snap/command-chain/snapcraft-runner
adapter-legacy:
command: test-cmd
command-chain:
- snap/command-chain/snapcraft-runner
adapter-none:
command: test-cmd
wrapped-default:
command: command-wrapped-default.wrapper
command-chain:
- snap/command-chain/snapcraft-runner
```
Signed-off-by: Chris Patterson <chris.patterson@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 |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2853 fixed app metadata handling so adapter: none does not add snapcraft-runner to command-chain; full and legacy adapters still do (commit 9599497fb). | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2853 fixed Snapcraft to honor adapter: none, leaving command-chain unchanged while retaining snapcraft-runner for full and legacy adapters. Commit 9599497fb. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in canonical/snapcraft#2853, commit 9599497fb, ensuring adapter "none" omits the snapcraft-runner command-chain while other adapters retain their handling. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged fix ensuring snapcraft honors the 'none' adapter setting by omitting the snapcraft-runner command-chain. Previously, the runner was incorrectly injected regardless of adapter configuration. Approved and merged with accompanying spread tests. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged fix ensuring snapcraft omits the snapcraft-runner from command-chain when adapter is none. Includes spread test to verify correct configuration handling. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2836 meta: fix command-chain handling when Application adapter == "none" | snapcraft | closed | PR #2836 was closed unmerged on 2020-01-07 by author cjp256 in favor of a simpler back-portable PR #2853, which was merged (commit 9599497fb) and fixed adapter: none adding snapcraft-runner to command-chain. | |
| #1955 meta: make sure adapter does not propagate | snapcraft | merged | Merged PR #1955 fixed snap.yaml generation so the snapcraft.yaml-only apps.adapter field is not propagated, resolving LP #1750658. | |
| #1895140 base: bare should force adapter none | snapcraft (launchpad) | closed | Reported2019 that base: bare with adapter none still emitted a snapcraft-runner command-chain entry needing /bin/sh. The omission was fixed upstream in canonical/snapcraft#2853 (9599497fb); closed as stale in Aug 2026 as adapter support has since been removed. | |
| #1750658 snapcraft should filter out 'adapter' when generating snap.yaml | snapcraft (launchpad) | closed | Snapcraft no longer propagates apps.adapter into generated snap.yaml; fixed by merged PR #1955 in commit b93625a37. | |
| #1860873 Regression: No difference between "legacy" and "full" app adapter | snapcraft (launchpad) | closed | Snapcraft's automatic wrapper/command-chain handling made adapter obsolete; merged PR #3741 (commit 46a3e90be) deprecated it. The legacy/full distinction was ultimately removed, not restored. | |
| #1794532 Add "full" adapter type | snapcraft (launchpad) | closed | Full adapter merged in canonical/snapcraft#2343 (d99c1fe43), using snapd command-chain without wrappers; legacy remained the default for compatibility. | |
| #2891 meta: always generate snapcraft-runner to workaround classic (#2889) | snapcraft | merged | Merged in PR #2891 as commit 343ac2862, adding an empty snapcraft-runner command-chain workaround for classic apps with incorrect PATH handling and unit tests. | |
| #1798918 command-chain is incompatible with legacy adapter, but snapcraft doesn't say so | snapcraft (launchpad) | closed | Added a sanity check rejecting command-chain use with the legacy app adapter in snapcore/snapcraft#2375 (commit 57c7fb8d0). | |
| #2343 schema, meta: add "full" app adapter | snapcraft | merged | Merged PR #2343 (commit d99c1fe43), adding the full app adapter via snapd command-chain instead of wrappers; legacy remained the default for compatibility. |