-
Notifications
You must be signed in to change notification settings - Fork 47
Comparing changes
Open a pull request
base repository: apache/pulsar-client-python
base: v3.0.0
head repository: apache/pulsar-client-python
compare: v3.1.0
- 14 commits
- 26 files changed
- 3 contributors
Commits on Dec 20, 2022
-
Add a script to download and stage artifacts (#65)
### Motivation & Modifications Add a script to download and stage artifacts so that we can just use a `svn add *` command to add them to the central repo. ### Verification Take the 3.0.0-candidate-3 release as example, after configuring the `GITHUB_TOKEN` environment variable, you only need to run: ```bash # See https://github.com/apache/pulsar-client-python/actions/runs/3709463737 $PROJECT_DIR/build-support/stage-release.sh v3.1.0-candidate-3 3709463737 ``` Then the layout of the current directory will be the same as https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.0.0-candidate-3/.
Configuration menu - View commit details
-
Copy full SHA for abad572 - Browse repository at this point
Copy the full SHA abad572View commit details
Commits on Dec 27, 2022
-
Configuration menu - View commit details
-
Copy full SHA for d307b98 - Browse repository at this point
Copy the full SHA d307b98View commit details
Commits on Jan 13, 2023
-
Configuration menu - View commit details
-
Copy full SHA for fe6dc94 - Browse repository at this point
Copy the full SHA fe6dc94View commit details
Commits on Jan 16, 2023
-
Add the release process for Python client (#68)
Fixes #64 It also adds a `upload-pypi.sh` that downloads the wheels from the Apache's SVN project and upload them to PyPI.
Configuration menu - View commit details
-
Copy full SHA for fe96604 - Browse repository at this point
Copy the full SHA fe96604View commit details
Commits on Jan 30, 2023
-
Configuration menu - View commit details
-
Copy full SHA for c2d4a33 - Browse repository at this point
Copy the full SHA c2d4a33View commit details
Commits on Feb 1, 2023
-
Add support for Python 3.11 (#83)
* Add support for Python 3.11 * Removed Python 3.7 windows PR build * PyYaml * Use pip3 instead of pip * Test * Fixed dependencies wildcard
Configuration menu - View commit details
-
Copy full SHA for c88d57e - Browse repository at this point
Copy the full SHA c88d57eView commit details -
Fixed deadlock in producer.send_async (#87)
Fix #84 Release the GIL while calling `producer.sendAsync()` to avoid a deadlock when PyBind is triggering the Python callback. * Main Thread 1. Holds the Python GIL 2. Call `producer.send_async()` 3. Tries to acquire internal `ClientConnetion` lock * Pulsar client internal thread 1. Holds lock on `ClientConnection` 2. Receives ack from the broker 3. Triggers callback 4. PyBind11 acquires GIL <---- Deadlock The problem is the different behavior in PyBind from Boost::Python. We always need to make sure we release the GIL before making any call to C++ that potentially acquires any mutexes
Configuration menu - View commit details
-
Copy full SHA for cff12ea - Browse repository at this point
Copy the full SHA cff12eaView commit details
Commits on Feb 2, 2023
-
Configuration menu - View commit details
-
Copy full SHA for fda5086 - Browse repository at this point
Copy the full SHA fda5086View commit details
Commits on Feb 16, 2023
-
Update the release process for versioning (#91)
### Motivation Adopt the same versioning rule with the Node.js client, see apache/pulsar-client-node#287. Add an extra step to commit the version update directly before pushing the tag. For example, fda5086 (cherry picked from commit cbd31e7)
Configuration menu - View commit details
-
Copy full SHA for 7ef441e - Browse repository at this point
Copy the full SHA 7ef441eView commit details -
Configuration menu - View commit details
-
Copy full SHA for e0b51d5 - Browse repository at this point
Copy the full SHA e0b51d5View commit details -
Add Human-readable description of MessageId object (#93)
(cherry picked from commit ed6983b)
Configuration menu - View commit details
-
Copy full SHA for dcfd136 - Browse repository at this point
Copy the full SHA dcfd136View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1248825 - Browse repository at this point
Copy the full SHA 1248825View commit details
Commits on Feb 17, 2023
-
Upgrade to pulsar-client-cpp 3.1.2 (#96)
(cherry picked from commit 2bab367)
Configuration menu - View commit details
-
Copy full SHA for 9ed92ec - Browse repository at this point
Copy the full SHA 9ed92ecView commit details
Commits on Mar 8, 2023
-
Wrap the interruption to a custom exception when a blocking API is in…
…terrupted (#99) ### Motivation Currently, when a blocking API is interrupted by a signal, `SystemError` will be thrown. However, in this case, `PyErr_SetInterrupt` will be called and next time a blocking API is called, `std::system_error` will be somehow thrown. The failure of https://lists.apache.org/thread/cmzykd9qz9x1d0s35nc5912o3slwpxpv is caused by this issue. The `SystemError` is not called, then `client.close()` will be skipped, which leads to the `bad_weak_ptr` error. P.S. Currently we have to call `client.close()` on a `Client` instance, otherwise, the `bad_weak_ptr` will be thrown. However, even if we caught the `SystemError` like: ```python try: msg = consumer.receive() # ... except SystemError: break ``` we would still see the following error: ``` terminate called after throwing an instance of 'std::system_error' what(): Operation not permitted Aborted ``` ### Modifications - Wrap `ResultInterrupted` into the `pulsar.Interrupted` exception. - Refactor the `waitForAsyncValue` and `waitForAsyncResult` functions and raise `pulsar.Interrupted` when `PyErr_CheckSignals` detects a signal. - Add `InterruptedTest` to cover this case. - Remove `future.h` since we now use `std::future` instead of the manually implemented `Future`. - Fix the `examples/consumer.py` to support stopping by Ctrl+C. (cherry picked from commit ec05f50)
Configuration menu - View commit details
-
Copy full SHA for b883f42 - Browse repository at this point
Copy the full SHA b883f42View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v3.0.0...v3.1.0