Release Process Clarification

Good day everyone. Quick question about releasing a snap into the store.

I had an issue identified via a failed ISO build that the 32bit version of our (Ubuntu Budgie) welcome snap was missing from the store even though we had specified to build 32bit (into edge).
The original thread was here

Now, my question relates to the proper flow of releasing a snap.

When reading the docs, I had primarily (after LP had done successful builds) just moved into the stable channel with snapcraft release <pkg> <rev#> stable.

And that “appears” to have not moved over all builds. (In our case 32bit). Tried checking out the man page for snapcraft (does not exist) to see if I missed something.

The ultimate solution was to release by architecture in the dashboard.

So for clarification:

  • Do you need to do the initial release via the dashboard? Or is there a CLI way for all the architectures you had built in LP?
  • As we continue to drop new builds into the edge channel via LP, do we need to always need to release via the dashboard? Or will the command discussed above then move all architectures after pushed once?
  • Or did I just miss something in the docs?

Thank you in advance.

Note that snapcraft has no manpage, but snapcraft --help is your friend.

When you (or CI) pushes a snap to the store, that single snap gets assigned a single revision from the store. When another snap is uploaded, it gets another revision. In most cases (such as yours) each snap targets a specific architecture, which means you have a different revision for each architecture.

The release process is currently done by revision, which means you’ll need to release once per architecture unless you happen to be building a single snap that runs on multiple architectures with no changes (e.g. a shell script), in which case you only have one snap == one revision to deal with.

1 Like