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?
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 build.snapcraft.io 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.
By design https://build.snapcraft.io 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.)