Michael came to our gitter to offer help with packaging CRDB as a snap package and offering it in Ubuntu’s repo. I thought I’d move the discussion here.
Michael, we have a few concerns about supporting this package. The main one is that, while we’re still in beta, we’re apprehensive about supporting one more distribution channel. We do were frequent releases and having to do more work for those would be a pain. We’re approaching a 1.0 release, however, at which point this may change.
Then there’s other technical concerns / questions. If you could help us understand these issues better, that’d be great.
- deb vs snap packages: could you elaborate a bit on the difference? Is snap targeting a particular category of apps, or is it supposed to replace debs everywhere?
Do the binaries packaged with snap run inside some sort of container? If so, what kind?
What are the tradeoffs that one should be aware when choosing deb vs snap?
Do you personally have a strong preference / expertise with snap that doesn’t apply to debs (e.g. would you be willing to help us with deb scripts if we’d chose that ?)
- licensing: Cockroach has parts that are not open source (source is still public, but commercial use requires a license). Almost none of the current functionality falls under this, but in the future some features will.
There’s a make target that will exclude these, so we can build purely Apache licensed code if need be.
What are the licensing requirements for the various repos that we might want to publish the package to?
- updates: many people might not want automatic updates for their database. You suggested that we have some control over this through versioning info in the package. Could you please elaborate more on what kind of versioning scheme we’d have to put in place (we don’t do semantic versioning at the moment) in order to give users full flexibility (no updates, only bug-fix updates, all updates).
- service configuration: Do you happen to know what are common expectations users have from service packages like ours? Would one expect the cockroach service to automatically be started when the package is installed? If so, how could configuration be handled for a service like ours where multiple instances are supposed to be running on different servers and one has to tell each instance what cluster to join?
- download tracking: we currently track the downloads of the tarballs we publish on our website. This is of course imperfect, but it’s better than nothing. Do you happen to know if/what options for tracking we’d have depending on where we publish a deb/snap?