<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/kafka-python.git, branch fix-describe-groups</title>
<subtitle>github.com: mumrah/kafka-python.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/'/>
<entry>
<title>Fix describe_groups</title>
<updated>2018-11-18T16:40:38+00:00</updated>
<author>
<name>Jeff Widman</name>
<email>jeff@jeffwidman.com</email>
</author>
<published>2018-11-17T10:46:18+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=2ba5f07b7154fde9523086142b755a2d6d450dba'/>
<id>2ba5f07b7154fde9523086142b755a2d6d450dba</id>
<content type='text'>
This was completely broken previously because it didn't lookup the group
coordinator of the consumer group. Also added basic error
handling/raising.

Note:
I added the `group_coordinator_id` as an optional kwarg. As best I
can tell, the Java client doesn't include this and instead looks it up
every time. However, if we add this, it allows the caller the
flexibility to bypass the network round trip of the lookup if for some
reason they already know the `group_coordinator_id`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was completely broken previously because it didn't lookup the group
coordinator of the consumer group. Also added basic error
handling/raising.

Note:
I added the `group_coordinator_id` as an optional kwarg. As best I
can tell, the Java client doesn't include this and instead looks it up
every time. However, if we add this, it allows the caller the
flexibility to bypass the network round trip of the lookup if for some
reason they already know the `group_coordinator_id`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add group coordinator lookup</title>
<updated>2018-11-18T08:39:09+00:00</updated>
<author>
<name>Jeff Widman</name>
<email>jeff@jeffwidman.com</email>
</author>
<published>2018-11-17T10:24:26+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=269938bd89e5162f57e0cec80c443af37158a240'/>
<id>269938bd89e5162f57e0cec80c443af37158a240</id>
<content type='text'>
We need a way to send a request to the group coordinator.

I spent a day and a half trying to implement a `_send_request_to_group_coordinator()`
that included:
1. caching the value of the group coordinator so that it wouldn't have
to be repeatedly looked up on every call. This is particularly important
because the `list_consumer_groups()`, `list_consumer_group_offsets()`,
and `describe_consumer_groups()` will frequently be used by monitoring
scripts. I know across the production clusters that I support, using a
cached value will save ~1M calls per day.
2. clean and consistent error handling. This is difficult because the
responses are inconsistent about error codes. Some have a top-level
error code, some bury it within the description of the actual item.
3. Avoiding tight coupling between this method and the request/response
classes... the custom parsing logic for errors etc, given that it's
non-standard, should live in the callers, not here.

So finally I gave up and just went with this simpler solution and made
it so the callers can optionally bypass this if they somehow already
know the group coordinator.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need a way to send a request to the group coordinator.

I spent a day and a half trying to implement a `_send_request_to_group_coordinator()`
that included:
1. caching the value of the group coordinator so that it wouldn't have
to be repeatedly looked up on every call. This is particularly important
because the `list_consumer_groups()`, `list_consumer_group_offsets()`,
and `describe_consumer_groups()` will frequently be used by monitoring
scripts. I know across the production clusters that I support, using a
cached value will save ~1M calls per day.
2. clean and consistent error handling. This is difficult because the
responses are inconsistent about error codes. Some have a top-level
error code, some bury it within the description of the actual item.
3. Avoiding tight coupling between this method and the request/response
classes... the custom parsing logic for errors etc, given that it's
non-standard, should live in the callers, not here.

So finally I gave up and just went with this simpler solution and made
it so the callers can optionally bypass this if they somehow already
know the group coordinator.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove support for api versions as strings from KafkaAdmin</title>
<updated>2018-11-18T08:22:52+00:00</updated>
<author>
<name>Jeff Widman</name>
<email>jeff@jeffwidman.com</email>
</author>
<published>2018-11-17T10:56:55+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=d67157cb9a032a6f0493cea128bbcd0528f3e640'/>
<id>d67157cb9a032a6f0493cea128bbcd0528f3e640</id>
<content type='text'>
This is a new class, so let's not support the old version strings and
saddle ourselves with tech debt right from the get-go.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a new class, so let's not support the old version strings and
saddle ourselves with tech debt right from the get-go.
</pre>
</div>
</content>
</entry>
<entry>
<title>Be explicit with tuples for %s formatting</title>
<updated>2018-11-18T08:21:18+00:00</updated>
<author>
<name>Jeff Widman</name>
<email>jeff@jeffwidman.com</email>
</author>
<published>2018-11-13T19:57:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=1d443638e22c2d360086b8d7cee8b5d930741d12'/>
<id>1d443638e22c2d360086b8d7cee8b5d930741d12</id>
<content type='text'>
Fix #1633
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix #1633
</pre>
</div>
</content>
</entry>
<entry>
<title>Stop using broker-errors for client-side problems</title>
<updated>2018-11-18T08:20:55+00:00</updated>
<author>
<name>Jeff Widman</name>
<email>jeff@jeffwidman.com</email>
</author>
<published>2018-11-17T09:37:15+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=f3105a434f3bd2fb3f8899e4861e187e786b03da'/>
<id>f3105a434f3bd2fb3f8899e4861e187e786b03da</id>
<content type='text'>
`UnsupportedVersionError` is intended to indicate a server-side error:
https://github.com/dpkp/kafka-python/blob/ba7372e44ffa1ee49fb4d5efbd67534393e944db/kafka/errors.py#L375-L378

So we should not be raising it for client-side errors. I realize that
semantically this seems like the appropriate error to raise. However,
this is confusing when debugging... for a real-life example, see
https://github.com/Parsely/pykafka/issues/697. So I strongly feel that
server-side errors should be kept separate from client-side errors,
even if all the client is doing is proactively protecting against
hitting a situation where the broker would return this error.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`UnsupportedVersionError` is intended to indicate a server-side error:
https://github.com/dpkp/kafka-python/blob/ba7372e44ffa1ee49fb4d5efbd67534393e944db/kafka/errors.py#L375-L378

So we should not be raising it for client-side errors. I realize that
semantically this seems like the appropriate error to raise. However,
this is confusing when debugging... for a real-life example, see
https://github.com/Parsely/pykafka/issues/697. So I strongly feel that
server-side errors should be kept separate from client-side errors,
even if all the client is doing is proactively protecting against
hitting a situation where the broker would return this error.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update requirements-dev to latest versions used on travis runs</title>
<updated>2018-11-17T21:59:11+00:00</updated>
<author>
<name>Dana Powers</name>
<email>dana.powers@gmail.com</email>
</author>
<published>2018-11-17T21:59:11+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=7bd6b5da6d402565f25fce9e710be26b2d4cc125'/>
<id>7bd6b5da6d402565f25fce9e710be26b2d4cc125</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Pin pytest on 3.x -- we arent ready for pytest 4.0 yet</title>
<updated>2018-11-17T21:56:51+00:00</updated>
<author>
<name>Dana Powers</name>
<email>dana.powers@gmail.com</email>
</author>
<published>2018-11-17T21:56:51+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=eae0eddc57b16be5a83eb29fd85106b33ec22693'/>
<id>eae0eddc57b16be5a83eb29fd85106b33ec22693</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use TypeError for invalid type</title>
<updated>2018-11-17T08:41:24+00:00</updated>
<author>
<name>Jeff Widman</name>
<email>jeff@jeffwidman.com</email>
</author>
<published>2018-11-13T21:58:51+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=21d68c98470eab6b9e7e5c934017af4a4fd24748'/>
<id>21d68c98470eab6b9e7e5c934017af4a4fd24748</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update changelog</title>
<updated>2018-11-13T01:37:24+00:00</updated>
<author>
<name>Dana Powers</name>
<email>dana.powers@gmail.com</email>
</author>
<published>2018-11-13T01:37:24+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=f0ef99f0e280f672289edab58c7f4a42341c01ab'/>
<id>f0ef99f0e280f672289edab58c7f4a42341c01ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Migrate from `Unittest` to `pytest` (#1620)</title>
<updated>2018-11-10T20:48:33+00:00</updated>
<author>
<name>Jeff Widman</name>
<email>jeff@jeffwidman.com</email>
</author>
<published>2018-11-10T20:48:33+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/kafka-python.git/commit/?id=bb5bc1fcfc09c9c9994edbbae0af2ff6802c353d'/>
<id>bb5bc1fcfc09c9c9994edbbae0af2ff6802c353d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
