Skip to content
Kyle Boyle edited this page Nov 22, 2018 · 4 revisions

Release Process

Releases are made automatically by Travis CI.

Travis CI runs on every push to master and uses the information in the .travis.yml to build each supported version of Kafka and push to Docker Hub.

Updating Kafka versions

Periodically, Apache will release patches for released versions of Kafka as documented in the Release Notes. You can subscribe to the Mailing List to opt-in to announcements.

We aim to support every latest major.minor version of Kafka, i.e. Even though Kafka version 2.0.0 and 2.0.1 exist, we only actively maintain 2.0.1.

When a supported version of Kafka has a new release, there are several files to update:

  • Dockerfile - Update the default build args for Kafka / Scala versions (if new release).
  • README.md - Update the supported tags
  • CHANGELOG.md - Add that versions have been updated
  • .travis.yml - Update the versions in the build matrix definition to reflect the required major.minor version. If this is the most-recent Kafka version, then you should also update LATEST_VERSION variable to reflect the <scala>_<kafka> version required. This is used to determine what version should be pushed to the wurstmeister/kafka:latest tag on Dockerhub.
  • For latest Kafka version only - update test/docker-compose.yml file. The kafkacattest service should have a default value of the latest Kafka version.

Add a new Kafka version

This process is exactly the same as 'updating Kafka versions' described above, except that instead of editing an existing version in the README.md and .travis.yml - a new version must be added. Also, the latest version must be updated in Dockerfile, .travis.yml and test/docker-compose.yml.

Because, potentially breaking changes could have been introduced or incompatibilities - this may also require adding / fixing some tests in the test/ directory.

Scala version

We are currently only supporting the recommended version of Scala as documented on the Release Notes page. This is mainly to reduce the build time, and due to lack of requests for other supported versions.

Dependencies

Kafka-docker does not rely on many dependencies, but the following should be checked regularly and updated following the normal release process (i.e. update README / CHANGELOG etc)

  • openjdk base image - Currently we use the Java 8 Alpine version. Java 8 is currently EOL - but this is the supported Kafka version.
  • glibc for Alpine linux - We currently use a pre-packaged glibc version to support SNAPPY compression. We should check for updates regularly, and update as required.