Flatpaks have json metadata files. AppImages have an AppDir. Snaps have a snap dir. If someone contributes one or more of these to a GNOME project (or any other upstream open source project for that matter), it enables a wider distribution of the software. However, depending on the project maintainer, not all of these packaging bits are welcome. Rejections of this kind causes unnecessary friction when we are all here to improve and promote open source software. This post will focus on snaps and point out some reasons why each maintainer should not only accept snap metadata, but encourage it.
If there is snap metadata in a project, then snaps are being built on launchpad. A build on launchpad is triggered whenever there is a new commit in master or the latest stable branch (ie. gnome-3-34). The snap built (on launchpad) from master commits is automatically pushed to the “edge” channel (think “bleeding edge”) and the snap built from the latest stable branch commits is automatically pushed to the “candidate” snap channel. After the maintainer of that snap in the snap store tests the candidate snap, they can go and move the snap to the “stable” channel.
So by just committing to master, you are getting the updated snap into the edge channel and making it automatically available to the many many users of snap!
By providing your changes to users so quickly, you expedite the testing! More testing means more bug finding and reporting – not just snap related issues.
We understand that not every maintainer is familiar with snapping things. Snapcraft folks are happy to assist project maintainers in building and testing changes to snap metadata. To reach us, everyone is welcome to post a question to the very active forum.snapcraft.io or ask in the #snapcraft irc channel on irc.freenode.net.
If a maintainer is not interested in even touching it, then we are happy to maintain the snap metadata.
By accepting snap metadata into your project, you are casting a wider net for users to learn about and enjoy your software. More users means more testing and more bug reporting. With all of this in mind, I hope maintainers will consider encouraging snap metadata in their projects!