Skip to content

Thoughts on how to proceed farther with aiokafka

Notifications You must be signed in to change notification settings

ods/aiokafka-todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

Drop support for kafka 0.x and 1.x

Why?

Probably nobody develop for them now. Nobody creates new images for them. The code could be simplified.

What stops us from doing it?

Before doing so it would be nice to:

  • Get usage statistics by version to estimate the impact.
  • Decide the way how we handle unsupported versions.

Add type annotations

Why?

Nowadays libraries are expected to be typed.

What stops us from doing it?

It's better to do massive changes after autoformatting.

Rewrite tests with pytest

Why?

We have a lot of problems in tests, they are hard to read. It's easier to fix the with pytests fixtures and pytest-asyncio.

What stops us from doing it?

It's better to do massive changes after autoformatting.

New kafka versions

What stops us from doing it?

  • The current image doesn't seem to work for kafka 3.
  • No access to Docker Hub account. Probably we can move images to GitHub?

Fix flaky tests

The list of flaky tests.

Replace codec dependencies

Why?

Some of them are not supported, we already have problems with python-snappy in Python 3.11.

What?

One probable candidate is cramjam could replace them all. According to download statistics it's much more popular, than aiokafka itself.

Move from setup.py to pyproject.toml (PEP-517)

Why?

Both direct invocation of setup.py and setuptools are effectively deprecated. The modern approach is to use pyproject.toml

What?

I personally prefer hatch. But we have to find out if it plays well with cython.

Update github actions

Why?

We already get warnings for them:

The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions/setup-python@v2, actions/cache@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/

Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions/setup-python@v2, actions/cache@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.

The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

Fix towncrier flow

We need to update instruction and keep CHANGES directory. Otherwise supporters don't understand what to do.

Verify protocol structs, use names as in spec

Protocol specification

Store errno in UnknownError exception

Exceptions for some error codes are missing (need update, but this will eventually break anyway). We raise UnknownError exception in this case, but then it's the error code of response is lost.

About

Thoughts on how to proceed farther with aiokafka

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published