-
Notifications
You must be signed in to change notification settings - Fork 699
feat: add snap packaging #1207
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
base: master
Are you sure you want to change the base?
feat: add snap packaging #1207
Conversation
|
I should add that I can also assist with moving the Snap ownership to a more official looking account on the snap store, rather than being published against my personal account! 🙂 |
|
@jnsgruk What systems come with snap preinstalled, but without python v2+ and pip preinstalled? I am open to exploring an option of adding new distribution mechanism to icloudpd project. I am not familiar with snap and need to read about it before accepting/merging PR - main focus is a balance between adding/maintain snap support vs additional user base that receives advantage of snap. |
|
The benefit of this method is that it's one command to install the package on any Ubuntu system from 16.04 onwards - and any other machine where snapd happens to be installed (snaps work on arch, fedora and others too). This means you can ship your app with all the most up to date dependencies essentially on any version of Ubuntu and not worry about system site-packages clashes etc. Ubuntu doesn't ship pip out of the box as far as I know - user would first have to Adding a snap will also make it searchable in the Ubuntu software centre. No rush like I say, and I totally understand you wanting to do some research! Feel free to ask any questions here if things are unclear. |
|
Snap is Canonical's primary method for end-user applications to be installed in Ubuntu. Obviously .deb packages are the primary method for system packages still, but as Canonical continues to push Ubuntu to be more acceptable for non-techy folks, Snaps are the emphasis. Syncing iCloud photos is one of the default requirements for anyone coming over from the Apple ecosystem. They've spent years building and managing a library of personal photos, and want to continue to sync them easily. Many times it is the preference of a person that their personal computer just takes care of itself. That is not the preference of all of us, of course, but it is an extremely common sentiment. Especially if it is a computer that is setup by a technically minded person for a family member that is not technically minded. They don't want to be beholden to this ongoing support requirement as they likely already have a day job that involves technology. Snaps are automatically managed. That is to say, they automatically update. Pulling all of this together, it builds a justifiable case for a more official icloudpd snap package. As an aside, my FIRST discovery of icloudpd was through ChatGPT pointing me to the snapcraft.io page when I asked for an icloud photo sync tool. Being technical myself, and not recognizing @jnsgruk on the snapcraft page, I went looking deeper and took the extra five minutes to find that the pipx package was more official and used that. But man, it would have been nice if that snap had been the best answer. |
|
@AndreyNikiforov anything I can do to help here? (FWIW the snap is over 500 users now ;-)) |
Hi there
Opening this to gauge interest in keeping the snap package I maintain alongside the upstream code. My project for the snap is at https://github.com/jnsgruk/icloudpd-snap.
I've got some automation that automatically bumps the snap version each time a new release of this project is cut, so there hasn't been much of a lag. I've been running it for a few months this way without issue.
The snap adoption is almost at 300 active installs, and has grown steadily. This provides an instant way to install
icloudpdon any Ubuntu machine with a singlesnap install icloudpd, so should lower the barrier nicely for some folks:I've set things up in CI so the snap is released to the
candidatechannel - which means when you release anyone tracking that channel will get automatically upgraded to the latest version. There is then an additional action that is manually dispatched for "promoting" the snap to thestablechannel. We can of course release straight to stable if your prefer, but that's relatively uncommon in the Snap ecosystem.I'm happy to keep maintaining separately, or merge the project here. If it does get merged, I'm also happy to help troubleshoot any snap issues and keep it fresh as things evolve in that ecosystem - but I thought this was worth proposing as an option!
Thanks for all your work on this project! I'll be afk for a couple of weeks from today, but can try to answer any questions along the way - there is no rush from my side!