This page outlines our strategy to expand the current Publishing documentation with a more comprehensive set of topics to cover the entire build, debug and publishing process, from requirements to Store metrics.
For the general set of documentation objectives, see The docs roadmap.
See Page breakdown for how this overview will be written as specific pages.
Titles, content and order are likely change as we write up each section, but the current plan is as follows (expanded below):
An emphasis on rapid iteration through fixes and updates using snapcraft --debug
.
Elements such as GNOME, KDE, audio, dbus, graphics are jigsaw pieces. Creating a successful snap involves connecting these parts together before resolving run-time dependencies and troubleshooting any Store upload issues.
Docs will build and step through a checklist, but each doc will act as both reference and guide, linking to relevant wider docs with few prior knowledge assumptions. Each doc should also work on its own.
Attempt to attain ‘build milestones’ where the reader can test their configuration without having to wait until the final build. Eg. you can run snapcraft earlier on to make sure parts are built, without getting as far as building a functional executable or a snap.
First, cover the pre-requisites (know your project). Check your app builds and runs outside of snaps.
Mention exceptions that can’t be made into a snap, these currently include libraries, media content (except themes), /snap/core18/current/{bin,usr/bin}/*
, no ARMv6 platform support. Note al, snaps don’t magically enable support for Linux apps on other platforms.
The checklist will consist of specific parts, plugs and connections from the following:
If you can’t find what you need, try:
- noplugin
- override-build
- ask on the forum
Need help? See the troubleshooting section for this step
global metadata
what is your base, and what does it contain (and not contain) - your blank canvas
how parts are added
For each plugin:
- what does the plugin actually do for each step
- set the plugin options
- extend the plugin steps with override-build, etc.
build dependencies
making your snap runnable (include daemon, .desktop and environment setup)
$SNAP
It should now be possible to build your application at this point. If this is your first snap, it’s worth doing this to make sure everything is working as it should.
version-script
is deprectated, use:
adopt-info
, snapcraftctl set-version
Need help? See the troubleshooting section for this step
Need help? See the troubleshooting section for this step
Martin’s blog post, Make your snap store page pop!, and Alan’s FOSDEM talk, Good Will Snapping are excellent resources for this section.
Need help? See the troubleshooting section for this step
Last updated 4 years ago.