Skip to content

Commit 68e779e

Browse files
authored
Merge pull request #435 from kafkaex/release_0.12.0
Prepare release 0.12.0
2 parents 1d8c0e5 + d343133 commit 68e779e

File tree

2 files changed

+109
-2
lines changed

2 files changed

+109
-2
lines changed

CHANGELOG.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# KafkaEx Changelog
2+
3+
## 0.12.0
4+
5+
### Breaking Changes
6+
7+
* Drop support for Elixir 1.5
8+
9+
### Features
10+
11+
* Allow passthrough of ssl_options when starting a consumer or consumer group (#413)
12+
* Allow GenConsumer callbacks to return `:stop` - allows graceful shutdown of consumers (#424)
13+
14+
### Bugfixes
15+
16+
### Misc
17+
18+
* Use Dynamic Supervisor rather than simple_one_for_one - fixes warnings on newer elixir versions (#418)
19+
* Update to Kayrock 0.1.12 - fix compile warnings (#419)
20+
* Tests pass the first time more often now (#420)
21+
* Fix deprecation warning about `Supervisor.terminate_child` (#430)
22+
* Remove Coveralls - was not being used, caused test failures (#423)
23+
24+
### PRs Included
25+
26+
* #413
27+
* #418
28+
* #419
29+
* #420
30+
* #430
31+
* #423
32+
* #424
33+
34+
## 0.11.0
35+
36+
KafkaEx 0.11.0 is a large improvement to KafkaEx that sees the introduction of the Kayrock client, numerous stability fixes, and a critical fix that eliminates double-consuming messages when experiencing network failures under load.
37+
38+
### Breaking changes
39+
40+
* Drop support for Elixir < 1.5
41+
* Partitioner has been fixed to match the behavior of the Java client. This will cause key assignment to differ. To keep the old behavior, use the KafkaEx.LegacyPartitioner module. (#399)
42+
43+
### Fixes
44+
45+
* Numerous fixes to error handling especially for networking connections (#347, #351 )
46+
* Metadata is refreshed after topic create/delete(#349)
47+
* Compression actually works for producing now 😬 (#362)
48+
* Don't crash when throttled by quotas (#402)
49+
* Default partitioner works the same way as the Java client now (#399)
50+
* When fetching metadata for a subset of topics, don't remove the metadata for the unfetched topics. (#409)
51+
52+
### Improvements
53+
54+
* Any GenServer can be used as a KafkaEx.GenConsumer (#339)
55+
* Can specify wait time before attempting reconnect (#347)
56+
* KafkaEx.stream/3 now uses the KafkaEx.Server interface, which inherits the sync_timeout setting. This avoids timeouts when sync_timeout needs to be greater than default. (#354)
57+
* KafkaEx can now use [Kayrock](https://github.com/dantswain/kayrock) as the client implementation. This is a large change, and is pushing toward the improvements we want in 1.0 to allow the library to easily support new versions of the Kafka protocol. (#356, #359, #364, #366, #367, #369, #370, #374, #375, #377, #379, #387, #406, #408)
58+
* `KafkaEx.Protocol.Fetch.Message` includes the topic and partition, allowing consumers to know which topic and partition they consumed from.
59+
* Add `KafkaEx.start_link_worker/1-2` to start a working and link it to the current process.
60+
* Allow setting the client_id for the application - supports better monitoring, debugging, and quotas. (#388)
61+
* Send metadata requests to a random broker rather than the same one each time (#395)
62+
* Retry joining a consumer group 6 times rather than failing (#375, #403)
63+
64+
#### Kayrock client
65+
66+
See [Kayrock and the Future of KafkaEx](https://github.com/kafkaex/kafka_ex#important---kayrock-and-the-future-of-kafkaex)
67+
68+
Note that the Kayrock implementation doesn't support Kafka < 0.11
69+
70+
Improvements over default client:
71+
* Can specify message API versions for the `KafkaEx.stream/3` API
72+
* Can specify message API versions for the consumer group API - NOTE that if you specify OffsetCommit API version >= 2, it will attempt to store the offsets in kafka, which will have no data about the topic unless you migrate the data. This could result in losing or reprocessing data. Migration can be done out of band, or can be done via the appropriate API calls within KafkaEx.
73+
* Allow specifying OffsetCommit API version in KafkaEx.fetch
74+
75+
### Misc
76+
77+
* Test suite uses KafkaEx 0.11 now in preparation for fully supporting Kafka API versions.
78+
* KafkaEx.Protocol.Produce cleaned up (#380)
79+
* Documentation improvements (#383, #384)
80+
* Test against Elixir 1.9 (#394)
81+
* Use OTP 22.3.3+ for OTP 22.2 testing to avoid SSL bug. (#405)
82+
83+
## 0.10.0
84+
85+
### Features
86+
* Allow passing in state to a `KafkaEx.GenConsumer` by defining a `KafkaEx.GenConsumer.init/3` callback. Adds a default implementation of `init/3` to ensure backward compatibility. -- @mtrudel
87+
* Support DeleteTopics API for Kafka 0.10+ -- @jbruggem
88+
* Add a default partitioner using murmur2 hashing when key is provided, or random partitioning otherwise. Use the `KafkaEx.Partitioner` behaviour to define a different partitioner, and enable it by adding it to the `partitioner` configuration setting.
89+
90+
### Misc
91+
* Lots of documentation fixes
92+
* Fixing elixir 1.8 compile warnings
93+
94+
### PRs Included:
95+
96+
* #343
97+
* #338
98+
* #337
99+
* #335
100+
* #329
101+
* #333
102+
* #331
103+
104+
## Previous Versions
105+
106+
See the releases for change notes.

mix.exs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
defmodule KafkaEx.Mixfile do
2+
@moduledoc false
23
use Mix.Project
34

45
def project do
56
[
67
app: :kafka_ex,
7-
version: "0.11.0",
8-
elixir: "~> 1.5",
8+
version: "0.12.0",
9+
elixir: "~> 1.6",
910
dialyzer: [
1011
plt_add_deps: :transitive,
1112
flags: [

0 commit comments

Comments
 (0)