google / go-jsonnet

Apache License 2.0
1.61k stars 233 forks source link

Build docker images for releases. #445

Open PaulRudin opened 4 years ago

PaulRudin commented 4 years ago

It's handy to have jsonnet (and probably jsonnetfmt) packaged as docker images. At the moment bitnami make an image: https://hub.docker.com/r/bitnami/jsonnet/, but it would be good if this was done for each release using the release binaries automatically. I can make the config to build the images.

Presumably it makes sense to put them on docker hub so that people can easily pull them.

Someone could create a jsonnet organisation on docker hub, or else perhaps it makes sense for the images to live under the google organisation - although someone will have to get hold of credentials to push images to docker hub for that.

sbarzowski commented 4 years ago

Hmmmm... The bitnami ones are semi-official. I think they're keeping them up to date quite well. Is there any reason why that's not enough?

FYI I would definitely like to have more automated deployments. The current pain points are mostly about changing the version in the sources and tests, syncing the repo and uploading new versions of Python packages and regenerating the docs. Here's the checklist I followed for 0.16.0: https://github.com/google/jsonnet/pull/802/files.

PaulRudin commented 4 years ago

They're fine - but there are a couple of reasons why it might be desirable to do something else/more.

PaulRudin commented 4 years ago

That release procedure is quite complicated, so it would be good to get more done automagically.

It's obviously complicated by having the two implementations. What needs to happen before the C++ version can be mothballed?

sbarzowski commented 4 years ago

What needs to happen before the C++ version can be mothballed?

1) Tests extracted from C++ version to a separate repo. Perhaps some generic acceptance test suite which can be used against any implementation. 2) Improved error messages in Go version. 3) The C bindings for the Go version are widely adopted and work without any problems. We don't want to break anyone. 4) Website uses Go version for interactive examples.

Even after we stop implementing new language features there, we will still provide bugfixes for a while.

Perhaps we can decouple the releases sooner, though. First step would be to extract the tests and stdlib.