Classic Confinement Request for python37 Snap

I want to add a Python 3.7 (3.7.0 not yet released) snap [0] to the store. If you look at the git repo [1], you’ll notice I grab the upstream release tarball and build it.

Why did I make the snap and why use “classic” confinement?

I could build a Docker image with Python 3.7 installed. The problem is that for it to work, I need to mount host directories into the container to get work done.

Snaps with classic confinement allows a user, like myself, to operate on data on the host. My workflow is: install Python, use pipenv to create virtualenvs, run some Python code.

On many Linux distributions, such as Ubuntu, installing Python versions other than the system install is (arguably) not straightforward. There’s the deadsnakes ppa but it’s not available on all distros. Other distros have their own convoluted ways. BSDs have a ports system which is much more suited to the task.

Snaps are meant to be universal Linux packages. Snaps also allow users to have concurrent installs of minor and/or patch releases of Python, like 3.6.0, 3.6.1, 3.6.2, 3.7.0b1, etc. These may not be general use cases but are very useful nonetheless.

This is to get the ball rolling. Maybe the community will step up and make more snaps. Or maybe I would, if/when given the opportunity.

I’m still very new to building snaps. Please bear with me as I learn the ropes.


FWIW I think it would be better to have a python snap, with tracks for the versions (see snap info go for how the go snap does it).

Ping for visibility.

There are several other python snaps in the store:

and none of these require ‘classic’ confinement and the snaps from @jamesh in particular have had a lot of thought put into them. Perhaps you and @jamesh can discuss your requirements and either create a python37 based on python36-jamesh or address the shortcomings in his snaps?

Thanks for pointing these out. @jamesh has done great work. I’ll look at his yaml to learn more.

@aikchar Have you decided how you’re going to approach your Python 3.7 snap?

Not yet. I don’t have the time just yet to work on this. For now it appears the work done by @jamesh is far ahead of mine and is of much better quality.