Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Snap releases #8688

Closed
2 tasks done
Winterhuman opened this issue Jan 21, 2022 · 15 comments · Fixed by #9434
Closed
2 tasks done

Remove Snap releases #8688

Winterhuman opened this issue Jan 21, 2022 · 15 comments · Fixed by #9434
Assignees
Labels
P4 Very low priority topic/docs-ipfs Topic docs-ipfs

Comments

@Winterhuman
Copy link
Contributor

Winterhuman commented Jan 21, 2022

Checklist

Location

https://github.com/ipfs/go-ipfs/blob/master/README.md

Description

Although not extremely numerous, IPFS issues related to Snap appear somewhat consistently with new users, a containerized format does not mesh well with IPFS's capabilities and use-cases, it also doesn't help that the errors produced by Snap installs are very vague which makes troubleshooting difficult. This could be partially solved by recommending snap install --classic ipfs to eliminate some of the issues, however, I propose a more substantial workaround. Removing Snap altogether.

Deb and RPM packages would be a much more useful alternative to Snap in a number of ways, they are more common place than Snap and do not require a secondary package manager to be installed, go-ipfs already provides a tar.xz release (ipfs/ipfs-desktop#691 (comment)) so moving to Deb and RPM shouldn't require too much effort (Also see #5471).

I'd particularly be interested in hearing from someone in the IPFS team to find out why Snap was chosen originally to give insight into this.

(Sorry in advanced if docs wasn't the right category for this issue, none seemed more appropriate for packaging-related issues)

@Winterhuman Winterhuman added need/triage Needs initial labeling and prioritization topic/docs-ipfs Topic docs-ipfs labels Jan 21, 2022
@bertrandfalguiere
Copy link

I'm not from PL, but I think Snap was supported because it is the default package manager on Ubuntu, and it was hard to put in on apt which also installed by default on Ubuntu and more commonly used, IIRC.

@kallisti5
Copy link

I had a ton of random issues with the snap package on my wife's ubuntu laptop. Finally gave up and used the binary release which worked fine.

@aschmahmann
Copy link
Contributor

Agreed that there are issues with Snap. We could ask Canonical to get us approved for classic. If there are README updates you'd like to make to add clarity beyond what's there that's fine too but things seem documented already.

None of the package mangers are explicitly supported by go-ipfs and are mostly community maintained. If there's a simple CI action we can use to deploy to a package manager then we do that to make life a little easier. However, whether we automatically publish a Snap or not someone else will and we'll end up with support requests anyway (IIUC the go-ipfs snap was previously community run before we had a CI action).

@lidel
Copy link
Member

lidel commented Jan 28, 2022

fwiw i filled request for classic in https://forum.snapcraft.io/t/ipfs-classic-request/28516
when we got 👍 there, I will flip flag in https://github.com/ipfs/go-ipfs/blob/master/snap/snapcraft.yaml#L15 and end this nonsense

@aschmahmann
Copy link
Contributor

Reopening just to track the snap switch to classic mode.

Brief summary:

  • Snap confinement makes many CLI tools (from jq to go-ipfs essentially unusable)
  • Removing our blessing/CI deployment for Snap does nothing since others in the community will (and previously did) publish Snap which resulted in us getting complaints anyway. All removing the CI integration would do is increase the attack surface on users
  • We've asked Snap to let us use classic confinement which will remove much of the nonsense, it still needs to go through their processes

@aronchick
Copy link

Confirmed - IPFS_PATH fails to get passed through and the binary fails without explanation.

@aronchick
Copy link

BTW, it's perfectly reasonable to use another install method, because IPFS requires so little - crates, debian - even a bash script - is preferrable to me.

@lidel
Copy link
Member

lidel commented Jun 23, 2022

I’d like to note that every time Snap discussion surfaces every few weeks, it ends up being a time sink and Snap maintenance creates a disproportionate burden to everyone involved (snap has ~4k users).

ipfs-cluster got granted classic confinement but it still caused maintenance issues when API key expired, and they removed Snap support in 2019: ipfs-cluster/ipfs-cluster#593 (comment)

Unless someone familiar with Snap wants to step up and drive this forward, I suggest we limit the time sink caused by Snap, pased on result of this thread:

  • if we are granted classic confinement, we update one line in readme and that is all
  • if we are not granted classic we should not sink more time in figuring out Snap incantations and fixing it every time it breaks:
    • hand over maintenance to someone from the community
    • update docs and readme's to clearly state Snap is not officially supported and the package is community-maintained

@aschmahmann aschmahmann added P4 Very low priority and removed need/triage Needs initial labeling and prioritization labels Jul 29, 2022
@Winterhuman
Copy link
Contributor Author

@lidel Any update on getting classic? It seems https://forum.snapcraft.io/t/ipfs-classic-request/28516/9?u=lidel hasn't progressed

@kallisti5
Copy link

kallisti5 commented Aug 29, 2022

Snap has been a dumpster fire lately.

Is there even any real demand for Snap packages anymore? Flatpak is in use on most of the distro's i'm aware of. Gnome software manager even dropped support for Snap due to the ongoing issues with it and lack of maintainers.

Pretty much anyone using Ubuntu (and really buying into the ecosystem) is going to grumble about missing snap packages... however the rest of Linux distros moved on from Snap a long time ago.

@Winterhuman
Copy link
Contributor Author

It's a shame there's no Flatpak, last time it was discussed that I know of was ipfs/ipfs-desktop#686

@lidel
Copy link
Member

lidel commented Aug 30, 2022

There is no progress on getting classic request, and the build on i386 is broken since 0.12.

As noted in #8688 (comment), I am unable to invest more time into this time sink: it burns a disproportionate amount of time given relatively low user count (https://snapcraft.io/ipfs has ~3-4k weekly active users, while our browser extension alone has >60k).

My vote is to remove it – dev time can be better spent in other places.

We could nuke it like https://snapcraft.io/ipfs-cluster got removed in ipfs-cluster/ipfs-cluster#649, or we could do this gently, by publishing a binary that prints "Snap is no longer supported, see https://docs.ipfs.tech/install/command-line/#linux for alternative installation method".

Don't feel strongly either way, would like to hear what others think.


General digression: I am using Linux myself (running Kubo in Docker). There is a long tail of Linux package managers. They all are great and terrible in their own unique ways and it is the best if people familiar with them spend time on producing packages.

Kubo produces prebuilt binaries as Docker images and a generic .tar.xz. There are also sources.
IPFS Community can use either of them and repackage for their distribution.

I opened #9239 to make it clear that everything other than Docker and https://dist.ipfs.tech/#kubo is unofficial.

@BigLep
Copy link
Contributor

BigLep commented Sep 2, 2022

2022-09-02 maintainer conversation:

  1. Core maintainers are not going to support Snap anymore.
  2. We will push a binary that prints a message that says what the official distribution is
  3. We'll point to the automation we have used in the past in case anyone wants to take it over.
  4. We'll remove this from our release process.

@galargh galargh changed the title Consider removing Snap Remove Snap releases Oct 17, 2022
@galargh
Copy link
Contributor

galargh commented Oct 18, 2022

Here's the plan for completing this issues:

Here's the proposed deprecation text:

Kubo is not distributed through Snap anymore (https://github.com/ipfs/kubo/issues/8688).
Please download Kubo from https://dist.ipfs.tech/#kubo.

@galargh
Copy link
Contributor

galargh commented Nov 25, 2022

Kubo is no longer distributed through Snap.

lidel added a commit that referenced this issue Nov 28, 2022
lidel added a commit that referenced this issue Nov 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P4 Very low priority topic/docs-ipfs Topic docs-ipfs
Projects
No open projects
Archived in project
Development

Successfully merging a pull request may close this issue.

8 participants