[pkg-go] Guidance for packaging Docker for Debian

Arnaud Rebillout arnaud.rebillout at collabora.com
Thu Mar 15 09:22:50 UTC 2018


Dear go packaging team,

lately I've been doing my best to try to package the current version of 
Docker in Debian. My approach was 'bottom-up': I listed all the 
dependencies, and tried to bump every pacakge to the latest version. I 
thought that in order to package the latest version of Docker, I needed 
the latest version of all its dependencies.

Now I finally realize how wrong I was. In the world of go, there's often 
no stable api, no backward compatibility, even no release, that why we 
end up packaging some random git sha. So basically, applications vendor 
their dependencies, and they won't work with an older version (because 
it's too old and miss something), but it won't work either with a newer 
version (because, hey, no release, no backward compatibility).

So I made a beginner mistake, but I'm learning, and hopefully I'm on the 
right track !

But now I face a dilemna.

The current version of Docker vendors `containerd` somewhere between 
`v1.0.0-alpha3` and `v1.0.0-alpha4`. While I already packaged containerd 
to `v1.0.2`. There's almost 6 months of difference between them, and no, 
docker (or more specifically its dependency swarmkit) does not build.

So I could re-package containerd to an older version. But if I do this 
choice, I basically admit that Docker decides of the version of all its 
dependencies, possibly holding back all of them. What if someone needs a 
pretty recent version of containerd (or any other Docker dependency), 
and we can't deliver that because we're waiting for Docker to bump the 
version it vendors, and we have no idea when it will happen ?

The other solution is to keep a vendored version of containerd within 
Docker, just the way it's already done in Docker. I'm personally fine 
with that, but it seems that it's not the Debian way. But maybe in this 
situation it makes sense.

I don't know what's the best way to deal with this situation, so if 
anyone from the team can provide some advice, that would be super welcome !

Thanks !

   Arnaud




More information about the Pkg-go-maintainers mailing list