Change from core20 to core22

core22 support in Snapcraft introduces new underlying layers and concepts that require some changes when migrating from core20 to core22. Support for core20 and other bases is unaffected.

Parts

Snapcraft has moved to a more general syntactical mechanism that can be used consistently across the *craft ecosystem. Most of the following changes are a reflection of that alignment.

While snapcraftctl is still supported, craftctl is now preferred.

Override pull

override-pull: |
  snapcraftctl pull

translates to:

override-pull: |
  craftctl default

Override build

override-pull: |
  snapcraftctl build

translates to:

override-pull: |
  craftctl default

Override stage

override-pull: |
  snapcraftctl stage

translates to:

override-pull: |
  craftctl default

Override prime

override-pull: |
  snapcraftctl prime

translates to:

override-pull: |
  craftctl default

Set a version

override-<step>: |
  snapcraftctl set-version 1.0.0

translates to:

override-<step>: |
  craftctl set version=1.0.0

Set a grade

override-<step>: |
  snapcraftctl set-grade stable

translates to:

override-<step>: |
  craftctl set grade=stable
<