Maintaining an official snap package in the FreeCAD organization

This subforum is specifically to discuss packaging issues on different platforms (windows, mac, linux), and using different packaging systems (conda, etc...)
User avatar
ppd
Posts: 106
Joined: Tue Feb 26, 2019 12:01 pm
Location: Munich, Germany

Maintaining an official snap package in the FreeCAD organization

Post by ppd »

Splitting off from https://forum.freecadweb.org/viewtopic. ... 3&start=60

The state of affairs right now

1. A semi-official (?) snap exists: https://snapcraft.io/freecad

The snap has improved over time, but issues remain:
- Its development sees extensive periods of inactivity. People are wondering whether it's still maintained: https://forum.snapcraft.io/t/is-freecad ... ined/27409
- It has a number of technical issues like not using file portal dialogs or not being able to download addons if the host has an /etc/gitconfig. Getting those fixed (e.g. https://github.com/opencomputeproject/CADCloud/pull/25) suffers from the problem outlined above
- It's attached to the CADCloud project, so no separate repo exists for its development.
- It does not use a self-contained packaging process as recommended when using snapcraft. You cannot just download the snapcraft folder and build a snap package.
- It is not registered under a proper organization account like "FreeCAD".

2. An unofficial snap exists, created by me: https://snapcraft.io/freecad-ppd

It solves many (if not all) issues I (and others) had with the snap above. Things like installing python packages within the snap (e.g. py_slvs for Assembly3), proper file dialogs, building in CI (GitHub Actions) etc. are implemented there.
I believe this could serve as the basis of a more modern snap package.

3. FreeCAD as an organization does not control its packages in one of the biggest "app stores" in Linux land

This follows from (1).

What I propose

1. create a repository under https://github.com/FreeCAD, e.g. https://github.com/FreeCAD/freecad-snap
2. host the packaging recipe in this repo. This can be done by copying my recipe. I'd gladly shut down my package if an official package existed.
3. create an account on https://snapcraft.io/ with the name "FreeCAD"
4. register an official snap. Consider requesting a transfer of the obvious "freecad" name. Anyone needing a special build of FreeCAD can easily create their own freecad package with a suffix (like mine, freecad-ppd).
5. grant trusted collaborators access to the snap, so you have a bus factor >1 for controlling the package
Try FreeCAD from the Snap Store: Stable releases (in latest/stable) & daily builds (in latest/edge). Supports installing additional python packages via pip!
Image
User avatar
ppd
Posts: 106
Joined: Tue Feb 26, 2019 12:01 pm
Location: Munich, Germany

Re: Maintaining an official snap package in the FreeCAD organization

Post by ppd »

Evidently, there's not much interest in an official snap, but at least freecad-ppd has seen some growth since the first proper publishing took place around six weeks ago. It has steadily grown to 217 weekly active devices. Not too shabby. Most people use the stable revisions (based on 0.19.3 and the previous 0.19.2).
Screenshot from 2021-12-19 14-14-48.png
Screenshot from 2021-12-19 14-14-48.png (60.11 KiB) Viewed 4652 times
Try FreeCAD from the Snap Store: Stable releases (in latest/stable) & daily builds (in latest/edge). Supports installing additional python packages via pip!
Image
User avatar
Kunda1
Veteran
Posts: 12742
Joined: Thu Jan 05, 2017 9:03 pm

Re: Maintaining an official snap package in the FreeCAD organization

Post by Kunda1 »

where is the graph legend?
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
ppd
Posts: 106
Joined: Tue Feb 26, 2019 12:01 pm
Location: Munich, Germany

Re: Maintaining an official snap package in the FreeCAD organization

Post by ppd »

Kunda1 wrote: Sun Dec 19, 2021 1:33 pm where is the graph legend?
Unfortunately, the legend only appears on mouse hover.
legend.png
legend.png (46.58 KiB) Viewed 4572 times
Try FreeCAD from the Snap Store: Stable releases (in latest/stable) & daily builds (in latest/edge). Supports installing additional python packages via pip!
Image
User avatar
ppd
Posts: 106
Joined: Tue Feb 26, 2019 12:01 pm
Location: Munich, Germany

Re: Maintaining an official snap package in the FreeCAD organization

Post by ppd »

Three weeks later, we've grown quite a bit: 271 unique devices (+25%).
Most people are on the stable channel, the US & Germany have the lion's share of users.
by-version.png
by-version.png (28.48 KiB) Viewed 4379 times
by-channel.png
by-channel.png (8.79 KiB) Viewed 4379 times
by-os.png
by-os.png (40.28 KiB) Viewed 4379 times
Try FreeCAD from the Snap Store: Stable releases (in latest/stable) & daily builds (in latest/edge). Supports installing additional python packages via pip!
Image
User avatar
ppd
Posts: 106
Joined: Tue Feb 26, 2019 12:01 pm
Location: Munich, Germany

Re: Maintaining an official snap package in the FreeCAD organization

Post by ppd »

A new snap has emerged, this time published by the main developer RealThunder: https://snapcraft.io/freecad-realthunder
It is based on the unofficial freecad-ppd snap.
You can try it as an alternative to the AppImages if you want to test all the exciting stuff in his fork.
Try FreeCAD from the Snap Store: Stable releases (in latest/stable) & daily builds (in latest/edge). Supports installing additional python packages via pip!
Image
User avatar
ppd
Posts: 106
Joined: Tue Feb 26, 2019 12:01 pm
Location: Munich, Germany

Re: Maintaining an official snap package in the FreeCAD organization

Post by ppd »

Screenshot from 2022-02-19 12-53-53.png
Screenshot from 2022-02-19 12-53-53.png (112.42 KiB) Viewed 3460 times
Still growing, we're up to 394 unique weekly-active devices. We've also increased the bus factor a bit: @Kunda1 has gained collaborator status in the Snap Store and on GitHub.
Try FreeCAD from the Snap Store: Stable releases (in latest/stable) & daily builds (in latest/edge). Supports installing additional python packages via pip!
Image
User avatar
kinghat
Posts: 15
Joined: Wed Oct 14, 2020 11:39 pm

Re: Maintaining an official snap package in the FreeCAD organization

Post by kinghat »

thanks for providing snaps for this! while i prefer flatpaks, ill take anything over manually managing appimages. is it possible to package the edge channel as weekly builds like appimages have? if im not mistaken, currently edge is built daily?
User avatar
Kunda1
Veteran
Posts: 12742
Joined: Thu Jan 05, 2017 9:03 pm

Re: Maintaining an official snap package in the FreeCAD organization

Post by Kunda1 »

kinghat wrote: Mon Feb 21, 2022 3:45 pm if im not mistaken, currently edge is built daily?
Yes.
There aren't plans to do a weekly build for snaps. It's either stable or edge (nightly)

Ref: Snap
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
ppd
Posts: 106
Joined: Tue Feb 26, 2019 12:01 pm
Location: Munich, Germany

Re: Maintaining an official snap package in the FreeCAD organization

Post by ppd »

kinghat wrote: Mon Feb 21, 2022 3:45 pm is it possible to package the edge channel as weekly builds like appimages have?
There are four risk levels for snaps (per track): edge, beta, candidate, stable.
Stable builds, i.e. tagged versions, land in candidate and get promoted to stable after some superficial testing.
Edge gets the nightly builds.

There's beta left, which could carry weekly promotions from edge. Would that make sense to lower traffic?
Try FreeCAD from the Snap Store: Stable releases (in latest/stable) & daily builds (in latest/edge). Supports installing additional python packages via pip!
Image
Post Reply