Snapcraft reference

Our Snapcraft Reference section is for when you need to know which plugins we offer, which interfaces you can use, and what you can add to snapcraft.yaml.

Reference How Snapcraft works
Snapcraft.yaml reference Every snapcraft.yaml keyword listed, described and defined
Supported plugins All currently supported language, platform, and toolkit plugins
Parts environment variables Variables that can be used within a part’s build environment

Alternatively, the Snapcraft tutorials section contains step-by-step tutorials to help outline what Snapcraft is capable of while helping you achieve specific aims, such as installing Snapcraft and building your first snap.

If you have a specific goal, but are already familiar with Snapcraft, our How-to guides have more in-depth detail than our tutorials and can be applied to a broader set of applications. They’ll help you achieve an end-result but may require you to understand and adapt the steps to fit your specific requirements.

Finally, for a better understanding of how Snapcraft works, and how it can be used and configured, our Explanation section enables you to expand your knowledge and become better at building snaps with Snapcraft.

Should we link to Parts environment variables instead of the Snap environment variables?

There is an inconsistency in how content is presented under the two tabs “Plugins” and “Extensions”. Under Plugins, there’s a reasonable listing of various plugins, but under Extensions, the only two sub-tabs in the Navigation menu are GNOME and Qt5, which are the entirety of the core22 extensions at the moment; there are no sub-tabs for core20 or core18 extensions (even if they’re mentioned on that page).

If a navigation tab has sub-tabs, I think the list of sub-tabs should be complete – either list all of the extensions, or don’t have sub-tabs at all, don’t have only a partial list. Might be worth also categorizing these into bases.

Good plan. I’ve created a task to do this for plugins, and I’ll do the same for Extensions. It’ll be good to have a core-based navigation model to follow.

The reference lacks sequence diagram for snap building process. Or any other kind of description about what phases are, and what happens at each phase:

  • ???
  • build
    • files are gathered and copied into SNAPCRAFT_PART_INSTALL dir
  • ???

EDIT: Found https://snapcraft.io/docs/parts-lifecycle#heading--steps but that is not linked from anywhere, and I don’t see how to add it to nav menu under reference.

I came here to the Snapcraft Reference to find the documentation for the upload subcommand, but I cannot find a CLI reference here. Could that be documented or linked to from here please?