From 0347f4ea8cf24ba5992976e21fc7ff7ca4f4d50e Mon Sep 17 00:00:00 2001 From: Tyler Witt Date: Tue, 16 Jun 2026 10:39:10 -0700 Subject: [PATCH 1/3] Remove crc32cer restriction Bumps brod and other deps as well --- CHANGELOG.md | 5 +++++ README.md | 4 +++- mix.exs | 3 +-- mix.lock | 6 +++--- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 794476d..4335086 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 2.1.0 + +* Removes crc32cer version limit. Bumping to > 1.0.0 requires cmake, so some may want to limit crc32cer themselves in mix.exs. +* Bumps brod and kafka_protocol + # 2.0.0 ### Breaking Changes diff --git a/README.md b/README.md index 6d6b8e6..136b476 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,9 @@ An opinionated, highly specific, Elixir wrapper around [Brod](https://github.com end ``` - 2. Configure a Kaffe Consumer and/or Producer + 2. If using crc32cer version > 1.0, install cmake. + + 3. Configure a Kaffe Consumer and/or Producer ## Kaffe Consumer Usage diff --git a/mix.exs b/mix.exs index 44c8e17..d3e9b7d 100644 --- a/mix.exs +++ b/mix.exs @@ -2,7 +2,7 @@ defmodule Kaffe.Mixfile do use Mix.Project @source_url "https://github.com/spreedly/kaffe" - @version "2.0.0" + @version "2.1.0" def project do [ @@ -32,7 +32,6 @@ defmodule Kaffe.Mixfile do defp deps do [ {:brod, "~> 4.0"}, - {:crc32cer, "< 1.0.0"}, {:ex_doc, ">= 0.0.0", only: :dev, runtime: false}, {:retry, ">= 0.15.0 and < 0.19.0"} ] diff --git a/mix.lock b/mix.lock index d551e8d..6edf877 100644 --- a/mix.lock +++ b/mix.lock @@ -1,9 +1,9 @@ %{ - "brod": {:hex, :brod, "4.4.0", "9e09abd24c0df25eee87f23004eb8b895d69e82f21d088276e1bb6f422c0e5fb", [:rebar3], [{:kafka_protocol, "4.2.3", [hex: :kafka_protocol, repo: "hexpm", optional: false]}], "hexpm", "51bd4f70ad63f9e92b412db5fc55a30a877f36ac386184caa29d729154f2d923"}, - "crc32cer": {:hex, :crc32cer, "0.1.12", "b018bd5dcbba9c35972822f53ad40b6b483d453204ef67daf92af3a314bbfbf6", [:rebar3], [], "hexpm", "56ad9380651c2c4cb21d7741c91cbcc4709e032fd31a98a33f007ee30e526972"}, + "brod": {:hex, :brod, "4.5.5", "ec43f49c8afe88a6ed9d1f31728f05d3468f392c05c4fc8245d7934442f0fc65", [:cmake, :rebar3], [{:kafka_protocol, "4.3.4", [hex: :kafka_protocol, repo: "hexpm", optional: false]}], "hexpm", "dfe42221c5800b0715929f98c955472342ac79cda628baf7fe40c1dd9f00aed9"}, + "crc32cer": {:hex, :crc32cer, "1.1.3", "da59f0ddd08f56d9a34186026c0b315cbc02ca390cf8cb15b045f10fb7dcc306", [:rebar3], [], "hexpm", "09c8b567b7be6bf43066185341ec0798eca7dbb66a6ab062ad0e2b25860d7ca1"}, "earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"}, "ex_doc": {:hex, :ex_doc, "0.38.2", "504d25eef296b4dec3b8e33e810bc8b5344d565998cd83914ffe1b8503737c02", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "732f2d972e42c116a70802f9898c51b54916e542cc50968ac6980512ec90f42b"}, - "kafka_protocol": {:hex, :kafka_protocol, "4.2.3", "83b11eb1ec90d51999a5dbb03ce7ed1363e34491ccf6b0f13c269c29294d59ba", [:rebar3], [{:crc32cer, "0.1.12", [hex: :crc32cer, repo: "hexpm", optional: false]}], "hexpm", "4db4bdd80f26574a0653a2784df00b0e8454c29bc3f65138ae8bc6497482934d"}, + "kafka_protocol": {:hex, :kafka_protocol, "4.3.4", "a641333ac8732071dc289eca9afb88d1abf6fb7b160b95b9a48b5deffeccf189", [:rebar3], [{:crc32cer, "1.1.3", [hex: :crc32cer, repo: "hexpm", optional: false]}], "hexpm", "2272cee16a7046ebdcaf7440e5cca0ce87110e691c2720e07dfcce2e2e652c04"}, "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, "makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"}, "makeup_erlang": {:hex, :makeup_erlang, "1.0.2", "03e1804074b3aa64d5fad7aa64601ed0fb395337b982d9bcf04029d68d51b6a7", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "af33ff7ef368d5893e4a267933e7744e46ce3cf1f61e2dccf53a111ed3aa3727"}, From ae0d4f5a4dbd0d12cfaf6064a8b764cb1b22afc4 Mon Sep 17 00:00:00 2001 From: Tyler Witt Date: Thu, 16 Jul 2026 08:38:24 -0700 Subject: [PATCH 2/3] fix typo --- CHANGELOG.md | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4335086..2857b66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * Removes crc32cer version limit. Bumping to > 1.0.0 requires cmake, so some may want to limit crc32cer themselves in mix.exs. * Bumps brod and kafka_protocol +* Fixes readme typo # 2.0.0 diff --git a/README.md b/README.md index 136b476..3d6279f 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ An opinionated, highly specific, Elixir wrapper around [Brod](https://github.com ```elixir def deps do - [{:kaffe, "~> 1.0"}] + [{:kaffe, "~> 2.0"}] end ``` From bc7e318b92b9fb0991f10c603a06f17b8eae1d3d Mon Sep 17 00:00:00 2001 From: Joe Peck Date: Fri, 17 Jul 2026 14:03:45 -0400 Subject: [PATCH 3/3] Fix e2e test for 2.0.0 --- CHANGELOG.md | 1 + .../subscriber/group_member_startup_test.exs | 17 +++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2857b66..8cf49e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ * Removes crc32cer version limit. Bumping to > 1.0.0 requires cmake, so some may want to limit crc32cer themselves in mix.exs. * Bumps brod and kafka_protocol * Fixes readme typo +* Fixes e2e test for 2.0.0 # 2.0.0 diff --git a/test/kaffe/consumer_group/subscriber/group_member_startup_test.exs b/test/kaffe/consumer_group/subscriber/group_member_startup_test.exs index cbb125d..4dafbfe 100644 --- a/test/kaffe/consumer_group/subscriber/group_member_startup_test.exs +++ b/test/kaffe/consumer_group/subscriber/group_member_startup_test.exs @@ -23,18 +23,23 @@ defmodule Kaffe.GroupMemberStartupTest do # Start two consumers and verify that they receive different partition assignments test "startup" do - Process.register(self(), :test_case) - # Retrieve the consumer config - consumer_config = Application.get_env(:kaffe, :consumers) |> Map.values() |> List.first() + base_config = Application.get_env(:kaffe, :consumers) + + on_exit(fn -> + Application.put_env(:kaffe, :consumers, base_config) + end) + consumer_config = base_config[:subscriber_name] + + Process.register(self(), :test_case) # Set configuration for two consumers - Application.put_env(:kaffe, :consumers, %{"s1" => consumer_config, "s2" => consumer_config}) + Application.put_env(:kaffe, :consumers, s1: consumer_config, s2: consumer_config) # Set up the first consumer - {:ok, _pid} = Kaffe.GroupMemberSupervisor.start_link("s1") + {:ok, _pid} = Kaffe.GroupMemberSupervisor.start_link(:s1) # Set up the second consumer - {:ok, _pid} = Kaffe.GroupMemberSupervisor.start_link("s2") + {:ok, _pid} = Kaffe.GroupMemberSupervisor.start_link(:s2) Process.sleep(consumer_config[:rebalance_delay_ms] + 100)