← Back to issue list

Vendor legacy snapcraft to maintain backward compatibility

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1793261
Type
issue
State
closed
Author
~kyrofa
Labels
—
Created
Updated
Closed

Current evaluation

Legacy Snapcraft was vendored into the snapcraft snap, dispatching projects without bases to it. Delivered via merged PRs canonical/snapcraft#2283 (commit f9592939a, override-build refactor) and #2285 (commit 5c1ee3b88).

Resolution: closed resolved

Reason: The two-step plan in the closing comments was implemented: PR #2283 (commit f9592939a) refactored override-build into a script to cut duplication, and PR #2285 (commit 5c1ee3b88, "snapcraft snap: vendor legacy snapcraft") vendored legacy snapcraft and dispatches no-base projects to it. Both merged and the LP bug was closed.

Evaluated by: mr-cal-bot

No scores available.

Issue body

The introduction of bases breaks backward compatibility. Rather than actually break backward compatibility in the snap, the legacy snapcraft should be vendored and the snapcraft snap should dispatch between new and legacy depending on the usage of bases.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Legacy Snapcraft was vendored into the snapcraft snap, dispatching projects without bases to it. Delivered via merged PRs canonical/snapcraft#2283 (commit f9592939a, override-build refactor) and #2285 (commit 5c1ee3b88).
stealth/space-bunny-alpha — closed resolved Legacy Snapcraft was vendored, with no-base projects dispatched to it for backward compatibility. Merged in canonical/snapcraft#2285 as 5c1ee3b88.
stealth/space-bunny-alpha — closed resolved Fixed by PR snapcore/snapcraft#2285 (commit 5c1ee3b88), vendoring legacy Snapcraft and using it when snapcraft.yaml has no base.
stealth/space-bunny-alpha — closed resolved Preserved pre-base compatibility by vendoring legacy Snapcraft. PR canonical/snapcraft#2285 merged as 5c1ee3b88, dispatching to legacy when snapcraft.yaml has no base.
qwen/qwen3.6-35b-a3b — — Closed without implementation. The proposal to vendor legacy snapcraft for backward compatibility was abandoned or superseded by newer architecture, receiving no further discussion or action.
qwen/qwen3.6-35b-a3b — — Closed without implementation. The proposal to vendor legacy snapcraft for backward compatibility was abandoned. No comments or resolution details were provided, indicating the approach was likely superseded by later snapcraft architecture changes.
qwen/qwen3.6-35b-a3b — — Closed without implementation. The proposal to vendor legacy snapcraft for backward compatibility was abandoned or superseded by alternative compatibility measures.
qwen3.6-35b-a3b-mtp-q6 — — Vendoring legacy snapcraft to maintain backward compatibility was closed without implementation. Zero comments indicate the suggestion was abandoned.

Update history

Date Change
created

Related work

  • Likely Fixed By: snapcraft#2285 (confidence 96%)

    Merged as commit 5c1ee3b88; vendored legacy snapcraft and dispatches no-base projects to it, directly implementing the requested dispatch behavior.

  • Related To: snapcraft#2283 (confidence 92%)

    Merged as commit f9592939a; prerequisite refactor of override-build into a script to reduce snapcraft.yaml duplication ahead of vendoring.

Related issues

Issue Project State Summary Similarity
#2285 snapcraft snap: vendor legacy snapcraft snapcraft merged Merged in canonical/snapcraft#2285 (commit 5c1ee3b88), vendoring legacy Snapcraft and dispatching no-base projects to it to preserve backward compatibility.
91%
#3608 many: rename snapcraft package to snapcraft_legacy (CRAFT-726) snapcraft merged Merged PR #3608 renamed the existing snapcraft package to snapcraft_legacy, freeing the snapcraft name for a craft-library-based application while leaving its entry point unchanged.
77%
#4194 Migrate snapcraft_legacy subcommands to use craft-cli snapcraft closed Requested legacy-handler bypass was abandoned; verbosity support landed in #5646/#5680, and snapcraft_legacy was later removed in ffb164b7a.
74%
#5682 Remove legacy help and version code snapcraft closed Merged PR #5777 removed the unused snapcraft_legacy help/version commands and their tests; the legacy package was later removed wholesale for Snapcraft 9.
73%
#4090 snapcraft_legacy: inject current snapcraft snap into instances snapcraft merged Merged #4090 as d680b8437, enabling snapcraft_legacy to inject the current Snapcraft snap into build instances for core18 and core20 snaps.
73%
#5616 feat(snapcraft_legacy): pack command runs the lifecycle snapcraft merged Merged PR #5616 (commit b511004af) made legacy core20 `snapcraft pack` run the lifecycle like newer bases, fixing issue #5425.
73%
#5982 Trim down snapcraft_legacy and plan migration effort snapcraft closed Superseded by a revised plan to migrate store commands first, then delete snapcraft_legacy; the package was later removed in ffb164b7a and 995f0a3bc.
72%
#1647699 Support classic building in snapcraft snapcraft (launchpad) closed Classic-snap builds were implemented by merged snapcore/snapcraft#949 (commit 058f5626d), resolving libraries from the core/base snap.
72%
#2311 snap: legacy needs to now it is legacy for re-exec snapcraft merged Merged #2311 fixed root re-exec invoking legacy Snapcraft with the correct interpreter, resolving LP #1795501.
72%
#3609 tests: move legacy snapcraft tests (CRAFT-728) snapcraft merged Merged PR #3609 in commit a71aeff54, moving snapcraft_legacy unit tests from tests/unit to tests/legacy to match the package rename.
71%