Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: apache/pulsar-client-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: ba99cd5
Choose a base ref
...
head repository: apache/pulsar-client-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: f445ceb
Choose a head ref
  • 13 commits
  • 14 files changed
  • 3 contributors

Commits on Jun 5, 2023

  1. [Enhancement/Feature Issue #47] Added support for KeySharedPolicy for…

    … the consumer when in KeyShared mode. (#109)
    
    ### Motivation
    The pulsar python client lacks support for defining KeyShared behaviour like out of order message delivery and sticky-hash, auto-hash for consumers in KeyShared mode. This PR adds full support. The user can now provide a KeySharedPolicy when starting a consumer with client.subscribe() #47 
    
    The ConsumerConfiguration::KeySharedPolicy and related setter/getter are now exposed to the Python client in this PR.
    
    ### Modifications
    
    - Added pybind11 enum for KeySharedMode in src/enums.cc.
    - Added pybind11 class for KeySharedPolicy in src/config.cc.
    - Modified pybind11 class for ConsumerConfiguration and added function to set KeySharedPolicy and function to read KeySharedPolicy.
    - Added KeySharedPolicy wrapper to pulsar/__init__.py. This wrapper handles KeySharedPolicy initialization and does some value validation.
    - Added the key_shared_policy parameter to client.subscribe(), some validation, and adding to the config in pulsar/__init__.py.
    - Added 4 new tests to test the new KeySharedPolicy functionality to tests/pulsar_test.py
    hyperevo authored Jun 5, 2023
    Configuration menu
    Copy the full SHA
    eb34eaf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f84931c View commit details
    Browse the repository at this point in the history

Commits on Jun 12, 2023

  1. [docs] Fix the incorrect API docs generation steps in the release pro…

    …cess (#131)
    
    ### Motivation
    
    #126 adds the
    instruction to include the `_pulsar` C module when generating the API
    docs. However, it does not work when the library is installed from
    `pip`. It only works when the wheel is installed from `dist/*.whl` that
    is generated by the `python3 setup.py bdist_wheel` command in the
    README.
    
    The reason is the official Python wheel uses `auditwheel` to package all
    dynamic libraries, so the `_pulsar.so` depends on another dynamic
    library in the relative path. e.g.
    
    ```bash
    $ ldd ~/.local/lib/python3.8/site-packages/_pulsar.cpython-38-x86_64-linux-gnu.so
            libpulsar-b6dad138.so => /home/xyz/.local/lib/python3.8/site-packages/pulsar_client.libs/libpulsar-b6dad138.so (0x00007f8dc09b3000)
            ...
    ```
    
    If we copy the `_pulsar.cpython-38-x86_64-linux-gnu.so` into the project
    directory, the `libpulsar-b6dad138.so` will not be found.
    
    ### Modifications
    
    In `RELEASE.md`, specify the path of `_pulsar.so` directly.
    BewareMyPower authored Jun 12, 2023
    Configuration menu
    Copy the full SHA
    1a2fb07 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2023

  1. Fix link failure on macOS (#133)

    ### Motivation
    
    We need to link the Python shared library on non-Windows systems as
    well. Otherwise, some link errors might happen.
    BewareMyPower authored Jun 23, 2023
    Configuration menu
    Copy the full SHA
    766db9e View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. Configuration menu
    Copy the full SHA
    8e6dd65 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2023

  1. Configuration menu
    Copy the full SHA
    2cb3cfe View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2023

  1. Configuration menu
    Copy the full SHA
    4c28ed5 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2023

  1. Fix the OpenSSL 3.x symbols not found on macOS build (#145)

    ### Motivation
    
    Recently after the runner image was upgraded, the macOS build failed
    with `symbol not found in flat namespace (_EVP_PKEY_get_bn_param)`.
    
    See https://github.com/apache/pulsar-client-python/actions/runs/5805986979/job/15740588663?pr=134
    
    There are actually two issues.
    
    One is that when building the C++ client on macOS,
    `/usr/local/opt/openssl/` will be firstly searched if `OPENSSL_ROOT_DIR`
    is not defined.
    
    https://github.com/apache/pulsar-client-cpp/blob/1e7d259bb94379ef6e4618fdac283912d0be6861/CMakeLists.txt#L136
    
    It should be fixed at the C++ client side but we can also have a
    workaround here by defining the `OPENSSL_ROOT_DIR` variable.
    
    The other is that when building the libcurl, the headers from
    `/usr/local/include/openssl/` were included, see the logs:
    
    ```
    /usr/local/include/openssl/macros.h:193:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
    #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
    ```
    
    It's a strange error because we have already configured the `--with-ssl`
    option to specify the OpenSSL directory. I tried adding
    `-I/path/to/my/openssl` to the `CFLAGS` env variable but it didn't work.
    
    ### Modifications
    
    To resolve the 1st issue, specifying `OPENSSL_ROOT_DIR` to the
    `DEPS_PREFIX` path when building the C++ client.
    
    To resolve the 2nd issue, since I cannot find an elegant way to do that,
    I just copied the OpenSSL headers from the dependency header directory
    to the libcurl include directory.
    BewareMyPower authored Aug 11, 2023
    Configuration menu
    Copy the full SHA
    0de92b0 View commit details
    Browse the repository at this point in the history
  2. Upgrade the C++ client to 3.3.0 (#146)

    ### Modifications
    
    Upgrade the C++ client to 3.3.0 and deprecate the `log_conf_file_path`
    config due to apache/pulsar-client-cpp#283.
    
    There is another issue that after
    apache/pulsar-client-cpp#290, the CMakeLists.txt
    from the C++ client finds the protobuf package with config mode. To fix
    it, install the OpenSSL via CMake instead of the autotools.
    BewareMyPower authored Aug 11, 2023
    Configuration menu
    Copy the full SHA
    ac4fcf0 View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2023

  1. Configuration menu
    Copy the full SHA
    19df7c3 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2023

  1. Configuration menu
    Copy the full SHA
    0693c2d View commit details
    Browse the repository at this point in the history
  2. feat: Support dead letter topic. (#135)

    * feat: Support dead letter topic.
    
    * Fix non space
    
    * Let maxRedeliverCount param required.
    shibd authored Aug 15, 2023
    Configuration menu
    Copy the full SHA
    c50ada7 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2023

  1. Bump version to 3.3.0

    shibd committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    f445ceb View commit details
    Browse the repository at this point in the history
Loading