I don’t think Snapcraft is a good system and I don’t think it’s going to work out in the longterm. I attribute this mostly to it’s Sandbox.
I personally think it’s so bad that I am tempted to create a competitor.
I am hoping to start some dialog to workout how releasing software on Snapcraft got this convoluted and to see if anyone else feels the same way.
It seems fairly frequently that I see Snapcraft having significant bugs or issues, and I only login once a Month if that.
It’s not easy enough to use, it needs significant work to streamline the release of software, at minimum it needs a graphical software submission system that generates the yaml and other parts for you based on a series of selection boxes and info screens, like a software install wizard.
Some points;
- Supporting one git provider GitHub seems unnecessarily limiting.
- Snapcraft is unable to provide a level of support that matches the complexity of its software deployment system.
- Auto-triggering re-builds every time a git commit is pushed, is unlikely to be sustainable in the long run. I often see problems with this build system, recently ARM builds where down for over 48 hours, recently the installed snaps metric was broken for a few days, often builds take a long time, maybe reducing the load on the system by only allowing manual triggers on builds? Maybe make people specify auto build triggers in the snapcraft.yaml and have auto build trigger disabled by default?
- High bar to entry for beginners, no clearly listed step by step tutorials for a number of deployment options and configurations, often it’s easier to find an existing project of a similar nature deployed on Snapcraft via Google or GitHub searches and learn from how that project configured it’s snapcraft.yaml. If I want to deploy a windows application via wine for example, there is no obvious place for a novice to start without significant time investment.
- Review system is not great, in the past I had snaps that have reviews from before they where even released, how is that even possible? Are the timestamps for reviews based on the system local time/date of the reviewer or something? I had reviews from years before the Snap existed. All seem removed now.
- No incentive to actually create high quality or constructive reviews, users don’t have a reason to value their input. There needs to be more of a focus on attracting high quality reviewers to Snapcraft, it would benefit Snapcraft in external exposure as well as higher quality internal reviews which would also benefit page ranking on search engines. Snapcraft needs to be the Medium of software reviews - it needs to empower and platform critics. Any press is good press.
- Anyone can register a snap name and never use it, and even worse, there seems to be no way for a user to free the snap name after having claimed it. This is insanity. There needs to be at minimum a grace period to free the snap name if never deployed to in x time period.
Some things have improved over the year I have been using Snapcraft, but the rate of progress is not confidence inspiring.
Key points:
- Encourage and create an environment for better reviews.
- Better and easier deployment system for publishers.
- Better bug reporting system where issues with the sandbox don’t go ignored for over a year.
- Allow support to connect to any git system not just GitHub.
Admit when Snapcraft is doing something bigger than it is able to actually support or maintain in a satisfactory manner and cut it or manage it on a proper scale for what Snapcraft can support.
The Sandbox should be optional and not just for Publishers, for users too, I should be able to disable the Sandbox and even build a project locally if I desire via the Snapcraft storefront. Publishers should be able to list “insecure” apps, and there should be some check mark system to show which apps support the Sandbox and which do not; including search filters. Snapcraft already supports plenty of what I assume to be legacy snaps listed as “Potentially Unsafe Proprietary Code”.
And there should be a proper ticket based request and review system, not this madness at the moment where people have to request permissions on the forum.