Regression: No difference between "legacy" and "full" app adapter
Metadata
Current evaluation
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.
Resolution: closed stale
Reason: Maintainers said Snapcraft automatically decided between wrappers and command-chain, leaving the adapter keyword obsolete. PR #3741 merged commit 46a3e90be to deprecate adapter and snapcraft_runner. The final closing comment confirmed that this functionality no longer exists.
Evaluated by: mr-cal-bot
No scores available.
Issue body
I was surprised to see that this snapcraft.yaml:
name: my-snap-name # you probably want to 'snapcraft register <name>'
base: core18 # the base snap is the execution environment for this snap
version: '0.1' # just for humans, typically '1.2+git' or '1.3.2'
summary: Single-line elevator pitch for your amazing snap # 79 char long summary
description: |
This is my-snap's description. You have a paragraph or two to tell the
most important story about your snap. Keep it under 100 words though,
we live in tweetspace and your description wants to look good in the snap
store.
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: devmode # use 'strict' once you have the right plugs and slots
apps:
hello:
command: hello.sh
adapter: legacy
parts:
my-part:
# See 'snapcraft plugins'
plugin: nil
override-build: |
echo "#!/bin/sh\necho 'hello'" > "$SNAPCRAFT_PART_INSTALL/hello.sh"
chmod a+x "$SNAPCRAFT_PART_INSTALL/hello.sh"
Produced exactly the same priming area as the same snapcraft.yaml, but using the "full" app adapter instead. They are both what "full" should be: using the command-chain instead of generating wrappers. Not only should they not be the same, but "legacy" is still supposed to be the default, according to the schema. It means that there is no way today to generate a snap that doesn't assume command-chain.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed stale | 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. | |
| stealth/space-bunny-alpha | — | closed stale | Legacy/full app-adapter behavior was later deprecated by snapcraft PR #3741 (46a3e90be); the issue was closed after noting the functionality no longer exists. | |
| stealth/space-bunny-alpha | — | closed stale | LP #1860873 closed without a fix; legacy and full adapters still produced identical priming output, with no resolving PR or commit recorded. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed without resolution; the regression where legacy and full app adapters produce identical output remains unfixed. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
98
Complexity:
25
Confidence:
90
Support Request:
5
|
close stale | Reports a snapcraft regression where legacy and full app adapters produce identical output, claiming legacy should be default. Unlabelled, zero comments, and inactive for over six years. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
98
Complexity:
65
Confidence:
85
Support Request:
5
|
close stale | Regression in Snapcraft where legacy and full app adapters produce identical output, preventing legacy wrapper generation. Unaddressed for over six years with no maintainer response. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
98
Complexity:
45
Confidence:
90
Support Request:
10
|
close stale | Reports a regression where snapcraft's legacy and full app adapters produce identical output using command-chain instead of legacy wrappers. Issue is over 6 years old, unlabelled, and references deprecated core18 base. |
Update history
| Date | Change |
|---|---|
| created |
Related work
-
Superseded By:
snapcraft#3741
(confidence 90%)
Its merged command-chain and adapter deprecation replaced the legacy/full selection model.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #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. | |
| #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. | |
| #1792018 Add "legacy" adapter type | snapcraft (launchpad) | closed | Added the "legacy" app adapter via snapcore/snapcraft PR #2262, commit 66c0cd0dd. | |
| #2262 schema: add "legacy" adapter type | snapcraft | merged | Merged PR #2262 as 66c0cd0dd, adding the default "legacy" app adapter to preserve wrapper generation and resolve LP #1792018. | |
| #2853 meta: do not set snapcraft-runner when adapter is "none" | snapcraft | merged | 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). | |
| #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). | |
| #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. |