Hi all,

The Python client has been separated since PIP-209 [1] and now the
Python client is maintained in a separated repository [2]. However,
the Python Function is still maintained in the main repo [3].

Currently, we can install the Python client with the following ways:
1. pip install pulsar-client
2. pip install pulsar-client[avro]
3. pip install pulsar-client[functions]
4. pip install pulsar-client[all]

See [4] for the difference. However, for the 3rd and 4th ways, it
installs all the dependencies required by the Python Functions.
However, they are broken for the recent releases because of the
outdated dependencies [5]. However, these dependencies are from the
Python Functions [3], not the Python client library itself. Also,
there are no tests in the Python client repo [2] for these functions
so these dependencies cannot be verified.

IMO, these dependencies should be maintained in the directory of the
Python Functions. We should not rely on the Python client to install
the dependencies for the Python Functions.

Therefore, my suggestion is to drop the 3rd and 4th installation
methods in future releases of the Python client. After that, we should
update the scripts in the main repo to install the Python Functions in
[3].

I'm not familiar with the Pulsar Functions, so feel free to show your
suggestions if any of you have any concerns.

[1] https://github.com/apache/pulsar/pull/17881
[2] http://github.com/apache/pulsar-client-python
[3] 
https://github.com/apache/pulsar/tree/master/pulsar-functions/instance/src/main/python
[4] https://pulsar.apache.org/docs/2.11.x/client-libraries-python/
[5] 
https://github.com/apache/pulsar-client-python/blob/a6476d9c45508f55a7af4b25001038a8e3a27489/setup.py#L80-L88

Thanks,
Yunze

Reply via email to