rust-rdkafka/CONTRIBUTING.md

1.4 KiB

Maintainer and contributor instructions

Compiling from source

To compile from source, you'll have to initialize the submodule containing librdkafka:

git submodule update --init

and then compile using cargo, selecting the features that you want. Example:

cargo build --features "ssl gssapi"

Tests

Unit tests

The unit tests can run without a Kafka broker present:

cargo test --lib

Automatic testing

rust-rdkafka contains a suite of tests which is automatically executed by travis in docker-compose. Given the interaction with C code that rust-rdkafka has to do, tests are executed in valgrind to check eventual memory errors and leaks.

To run the full suite using docker-compose:

./test_suite.sh

To run locally, instead:

KAFKA_HOST="kafka_server:9092" cargo test

In this case there is a broker expected to be running on KAFKA_HOST. The broker must be configured with default partition number 3 and topic autocreation in order for the tests to succeed.

Releasing

  • Checkout into master and pull the latest changes.
  • Ensure rdkafka-sys has no unreleased changes. If it does, release rdkafka-sys first.
  • Ensure the changelog is up to date (i.e not Unreleased changes).
  • Run ./generate_readme.py > README.md.
  • Bump the version in Cargo.toml and commit locally.
  • Run cargo publish.
  • Run git tag -am $VERSION $VERSION.
  • Run git push.
  • Run git push origin $VERSION.