Hi Tim,
Thanks for bringing those issues up. Indeed we need to be extremely transparent when discussing store issues, precisely because this is a shared resource that we all care about. That’s why those conversations are happening publicly here, and are available for debate.
For classic snaps, we don’t yet have that clear line that defines when it is okay and recommended to use them, and when it is better to work harder on confinement or alternative distribution means. We lack enough experience with them to have that clarity right now.
For that reason, you’ll find interesting conversations as happened for yarn with multiple people debating what’s the right thing to do, and providing rationale for it. I hope we can eventually take those experiences and drive a more clear line, as you suggest.
Answering your more specific questions, the issue is definitely not related to what the application can theoretically do, as every application can theoretically do everything.
Being clearly oriented for developers helps, as developers are much more conscious of the issues related to the installation and use of libraries that they themselves depend upon.
The case of snapcraft is an interesting one. We might see it as a unique exception since it’s one of the pieces that enable the whole thing to fit together, but it’s not just that. I would probably have recommended accepting it nevertheless, because the driver for using snapcraft is building and packaging software instead of just manipulating the system in arbitrary ways. In fact, the latter is one of its deficiencies that we are working to fix, and you can even see me complaining here in the forum about the fact it wants to fiddle with packages. In the medium term, snapcraft should be entirely confined too.
In fact, another aspect that plays a role is precisely whether this is a temporary measure towards confinement, or if the application is inherently hard to confine. In the medium to long term the goal is to remove the need to have classic snaps all together, by implementing the necessary confinement features in a convenient way both for the developer and for the user.
Another aspect in those choices is the size of the community that depends on the given functionality. In the case of yarn, for example, its relevant following inside their own community means many of the concerns I’d have for such a fiddly piece of software are already real concerns on the maintainers’ table. So improving its distribution seems like a worthwhile trade off.
So these are some of the issues that surround the conversation of classic snaps, and given the number of aspects and the subjectivity in some of them, we can see why we don’t yet have a clear red line we wished for. What we have for now are these underlying goals, which work as guidelines for the conversation.