Classic confinement + help for Task

Snap setup:

First of all, I need classic confinement for Task. Users will use Task to call basically anything they want: be it a compiler, tool, script, etc. Also, it should be able to read and write to any directory the user want.

I also need a little help with it.

  • The build failed on the build server, and I couldn’t understand what’s wrong by the stack trace. I was able to build, install and run it locally without any problem.
  • I’d like to configure specific -ldflags in the build, like this. It don’t seem it is currently supported by the Go plugin.

General feedback

  • IMHO Snapcraft need better error messages. While trying to configure it, I did silly mistakes until I got it right. But instead of an useful error message, Snapcraft just prints an stack trace, and it was hard to know what was wrong.
  • I usually install Go manually, by downloading it and setuping GOROOT, GOPATH, PATH, etc. Even then, Snapcraft install Go from apt-get and then I get two Go versions installed in my machine. Maybe it should skip it if the go executable is found in PATH?

this is dealt with in:

You should use “snapcraft cleanbuild”, that will use a container for building, which will:

  • not taint your host with additional versions of build dependencies
  • make sure your snap is built the same way that will later build it when you want to switch to automatic builds from github
  • make sure that others can also use “snapcraft cleanbuild” to build your package

PS: you should split the help request and request for classic confinement into two forum topics so there is a clear papertrail for the classic bit later and it doesnt get tainted by unrelated discussions.

I’m +1 on the request for classic confinement. Task needs to run arbitrary binaries from the host system (go get, rbenv, etc). I can also confirm that Andrey is upstream for Task.

Granted. This is now live.

Thanks! It’s now published.

I’ve changed to dump plugin, at least for now.

As a note, built it 3 times, despite only amd64 being listed on snapcraft.yaml.

Ideally it should allow inform a different tarball for each architecture. I searched a bit and found it is already planned, so +1 for that.

Great! Are you planning to promote 1.4.3 to stable, @andreynering?

And yes, there are two issues there. Snapcraft should let you:

  1. Define what architectures you build for (in progress)
  2. Use different sources for the dump plugin, based on the architecture being built

I’ll let @sergiusens comment on the latter. Meanwhile, this will give you working 32 and 64-bit x86 builds.

Are you planning to promote 1.4.3 to stable?

Hmm… Do I have to release manually to stable every time? I thought it was released automatically because it’s listed as stable.

Meanwhile, this will give you working 32 and 64-bit x86 builds.


By design only releases into the edge channel. It’s desired that people vet those revisions before releasing into stable.

You can release to stable with snapcraft release task 10 stable from any machine that has your ~/.config/snapcraft/snapcraft.cfg (generated by snapcraft login).

(grade: is a safety mechanism that prevents accidental releases of grade: devel revisions into the stable channel. Only grade: stable will go into the stable channel.)