forked from couchbase/couchbase-python-client
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
update #1
Open
griels
wants to merge
703
commits into
griels:master
Choose a base branch
from
couchbase:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
update #1
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Motivation ========== PYCBC-948 added expiry logic that was deprecated with the release of the 3.1.0 Python SDK. Removing deprecated code. Modification ============ Removed deprecated code and updated related tests. Results ======= All tests pass. Change-Id: I18f1ed4e308d5838d50fafc7023668f61112cf8b Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/166557 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Having a raw option available in QueryOptions provides support for future features and can also serve as a work-around in certain scenarios. Modification ============ Implement logic for raw option in N1QL queries, if passed in QueryOptions. Add test to confirm functionality. Results ======= All tests pass. Change-Id: I578e15a8dc0f9fd0fbfd407d2f79ce757477ade7 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/166559 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
…e QueryManagement API Motivation ========== Since options can be passed into the create_primary_index() method, they are forwarded into kwargs which are passed along accordingly. The options no longer need to be passed as they are contained within the kwargs. Passing the options was causing an exception. Modification ============ Do not pass options once they have been forwarded into the kwargs. Add test to confirm options are handled correctly. Results ======= All tests pass. Change-Id: I4e60a8deb100b638650758684e2348bb305c20e5 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/166560 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Provide users access to the Binary Collection API when using the acouchbase API. Modification ============ Update acouchbase API collections to provide access to an async Binary Collection. Add tests to confirm functionality. Results ======= All tests pass. Change-Id: Ia92d6ed5760b7ec73f9309e439b58e467c01aad8 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/166633 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Move to to latest lcb version in preparation for the 3.2.4 Python client release. Modification ============ Update cbuild_cfg.json. Results ======= All tests pass. Change-Id: I6acafd26a2b9ff9ba5138172f9379635ffc57eac Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/166634 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Improve memory performance for users using KV multi methods. Modification ============ Decrement PyObject ref count on error info dict. Results ======= All tests pass, memory performance improved. Change-Id: I86cb22c9e8fa4056cba38afdcd37313725174883 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/166981 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Feature addition for bucket management API. Modification ============ Update bucket manager's bucket settings to include storage option. Add tests to verify functionality. Results ======= All tests pass. Change-Id: I11b9d926107e984b6f009956f525ea61e25cbc71 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/166982 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Some txcouchbase tests need to be skipped until fixed in a future iteration. Addition of testing on Alpine Linux means adding alpine to the regex skip condition. Modification ============ Added alpine to the regex skip condition. Results ======= CI builds pass. Change-Id: Ieb22b5fcc40acaa17cfcd91487257a722bb8a2ac Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/167965 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
ConflictResolutionType Motivation ========== Couchbase 7.1 will provide a developer preview feature that allows buckets to have custom conflict resolution. Providing the new type will allow users to test out DP feature. Modification ============ Added CUSTOM member to ConflictResolutionType Enum. Results ======= No impact to CI builds/tests. Change-Id: I1e1563955c4a8311d4f7e9aacf4f23bbf5138245 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/167966 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
…atchQuery Motivation ========== Provide users with further search query options. Modification ============ Added include_locations option for search queries. Added MatchOperator Enum for MatchQueries. Added tests to confirm functionality. Results ======= All tests pass. Change-Id: I5e78678189b706bd9e3ba9b9a1e40d21cb96617f Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/167967 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== When using SSL connections libcouchbase appears to be able to attempt to destroy an event prior to deleting (i.e. unwatching). The destroy process can be hardened a bit by making sure the event has been deleted (i.e. cancelled) prior to destroying the event. Modification ============ If and event/timer is to be destroyed, verify that the event/timer has first been deleted (i.e. cancelled). If the event/timer has been deleted then move forward with destroying the event/timer, otherwise delete the event/timer and then move forward with destroying the event/timer. Results ======= All tests pass. Change-Id: Iff3d768090698dbe5faf6e31e6356129e7ab8fd9 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/168062 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Provide users with option to preserve document TTL if N1QL is mutation. Modification ============ Update QueryOptions to take optional preserve_expiry boolean. Add tests to verify option propagates correctly. Results ======= All tests pass. Change-Id: Ic9593831689b80efa5be683fb9fb9077d61c2e1c Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/168415 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== FTS Rate Limit error changed. Update to catch new message in order to raise QuotaLimitedException. Modification ============ Update regex to catch FTS Rate Limit error. Results ======= FTS rate limit tests pass. Change-Id: I59360401acc04fbf4eaa5e4e2add27a23c7880e0 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/168417 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
management APIs Motivation ========== Rate limit errors should be hanled for all APIs in the Management API. Modification ============ Add rate limit error to BucketManagement, UserManagement and ViewManagement APIs. Update tests to verify rate limit on concurrent operations. Results ======= All tests pass. Change-Id: Ib5669d588997f0cac6fa8f58e3b5a34aff0ac933 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/168418 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Change-Id: I0718afe65d0d05fdb851764f16558571a5c94925 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/168697 Tested-by: Build Bot <[email protected]> Reviewed-by: Jared Casey <[email protected]>
Expand preserve expiry test to actually test the expiry is preserved Change-Id: I530cd0f9f1fcc48c7cba74b7a22eead2cbb7c1a5 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/168743 Tested-by: Build Bot <[email protected]> Reviewed-by: Jared Casey <[email protected]>
Update search match operator test to check result differs when match operator is changed Change-Id: I7e64e4bc0888477de9d29001b508f5b80303378b Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/168744 Tested-by: Build Bot <[email protected]> Reviewed-by: Jared Casey <[email protected]>
Motivation ========== Update preserve_expiry N1QL test to work on server versions < 7.1 Modification ============ Update SkipTest() to use literal 7.1 instead of self.MIN_VERSION (setting MIN_VERSION does not make since in w.r.t. the class that owns preserve_expiry test) Results ======= All tests pass. Change-Id: Idd4405ed4d01259bbc2d931dd6d1051083b0ea84 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/168713 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Allow users to management N1QL indexes in collections. Modification ============ Update options for Index Manager operations to handle scope and collections. Results ======= All tests pass Change-Id: I4ec9bc22c5396b6bda7e5c2a1de978c0c9860162 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/168771 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== In certain scenarios it would be beneficial to be able to point the build system to a specified path for OpenSSL. Modification ============ Update build system to propagate PYCBC_OPENSSL_DIR env config, if it exists, as the OPENSSL_ROOT_DIR. Results ======= No tests impacted. Can provide OpenSSL path to build system. Change-Id: I30eb48ed744eca9370a81536b85548e40ef34df1 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/169849 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== The build_deferred_indexes() method in the Index Managament API should work for all supported couchbase server versions. Modification ============ Revert back to the 2 query method for older server versions. Keep the single query method for server versions (>= 6.5) that allow the nested query for building indexes. Results ======= All tests pass (on all server versions) Change-Id: I1439345bbad9dc30c1d50a7b8265d4537ab11a4f Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/169940 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Provide further error context with newer versions of CBS. Modification ============ Add error_response_body field to QueryErrorContext. Add test to verify updated context. Results ======= All tests pass. Change-Id: I9c39eaac84e5b9b4a01d34a60baafa051c41cdd6 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/170701 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
signature Motivation ========== The modify_event_python() method accepts a void* parameter that is cast to either a short or unsigned long depending on the event type passed into the method (either an IO event of timer event). This can lead to compile-time errors on certains OSes (archlinux in particular). Changing the method signature to accept both a short (for event flags) and an unsigned long (for timer usecs) cleans up the compile-time errors and also makes the method signature more understandable. Modification ============ Change iops.c modify_event_python() to accept a short and unsigned long to represent event flags and timer usecs, respectively. The change allows for a more clear representation of what should be passed to the method. Results ======= No asynchronous tests impacted. Client builds on archlinux. Change-Id: I1eadc1d97cf5dbe4ed67abf9fdd4db9bb0a44778 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/170898 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Keep connection operation and obtaining the server version separate that way if an error occurs we can easily tell if the error was due to a problem during bootstrap or a problem trying to obtain the server version. Modification ============ Remove C-bindings code to do HTTP request to get server version and chain acouchbase cluster connection future to a future that makes an HTTP request to get the server version. Results ======= All tests pass. API unchanged. Change-Id: Ia43bb898a3a75c0f51683b99d7ebd67765f6293e Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/170923 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
collections Motivation ========== Utilize the management API where applicable. Modification ============ Update rate limit tests to use query index mgmt index of executing queries. Results ======= All rate limit and query index mgmt tests pass Change-Id: Ic2625a73a29e8e93774eca7eaf33c71cffd8afd8 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/170926 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Update Python SDK to more recent version of libcouchbase. Modification ============ Update build config LCB version. Results ======= All tests pass. Change-Id: Ia56bcf1fd65260c470df2b33a146be2f3836b802 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/172131 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Update dev_requirements.txt to match dependabot PR Modification ============ Update dev_requirements.txt twisted version to 22.1.0 Results ======= No impact. Change-Id: I63c537bf26a94fd5c5f6ebefba4bdc8a846fd03d Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/172132 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== The Eventing function management API added a new property to the EventingStatus. The 'function_scope' property should be added to align with the API. Modification ============ Add the function_scope property to the EventingStatus class Results ======= All eventing mgmt tests pass. Change-Id: Ic2146370b9b2622bea3a7c28577bb4f701c4bebf Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/172153 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Motivation ========== Better test behavior when testing against server version 7.1 Modification ============ Analytics, analytics mgmt and rate limiting test updates. Results ======= All tests pass Change-Id: I3c10a0fdcfc124669669f6a4c6ed457e6f5c314e Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/172472 Tested-by: Build Bot <[email protected]> Reviewed-by: David Kelly <[email protected]>
Change-Id: I4dafc7afb3e90ad1f14f342b3865cfcc0b84db5f Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/211375 Reviewed-by: Dimitris Christodoulou <[email protected]> Tested-by: Build Bot <[email protected]>
Change-Id: I8f6f775d7c1b1b046676a97c9388da70228d272d Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/211529 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
Motivation ========== Improve developer experience by providing a way to import an FTS index from JSON. Modification ============ * Add helper method in search index mgmt that can create a `SearchIndex` from a JSON str or Python dict derived from JSON. * Add test to verify functionality. Results ======= All tests pass. Change-Id: I9014bdbaf0818919852ad30fabbcb02a0fe4b3e9 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/211617 Reviewed-by: Dimitris Christodoulou <[email protected]> Tested-by: Build Bot <[email protected]>
Change-Id: I268e0b4146ce1aa20c5ec1a1c29ef74b245b971a Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/211682 Tested-by: Build Bot <[email protected]> Reviewed-by: Sergey Avseyev <[email protected]>
Change-Id: I175711d5984fa315b042785d7208327ac274264d Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/212562 Reviewed-by: Jared Casey <[email protected]> Tested-by: Build Bot <[email protected]>
Motivation ========== Currently the durability option for multi mutation operations is not appropriately parsed and therefore the bindings don't pass durabiliyt along to the C++ core. Modification ============ Added appropriate option parsing to the multi mutation operations. Added tests to confirm durability for multi mutation operations. Results ======= All tests pass. Change-Id: I8911e18642cce64918c0f10de35aeb9b84884357 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/213433 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
Change-Id: I856909e4c3b73de190273806c7f21f7960b54cce Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/214869 Reviewed-by: Dimitris Christodoulou <[email protected]> Tested-by: Build Bot <[email protected]>
Motivation ========== Add support for Python 3.12. Modification ============ * Update bindings to fix build errors with Python 3.12. * Add configure_ext Command to setup.py. Results ======= All tests pass. Change-Id: I267ded9b255b9c61e800ce7b7eb676fb04502276 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/206598 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
Change-Id: Id7615607dba792082b45df1044761a0ef78566bc Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/216450 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
… if it does not exist Motivation ========== Currently, it is not possible to have an unset value for 'initial' in increment/decrement in the request sent to the server, as the initial value is initialized to 0 if not set in the options. The C++ core supports this, so we should provide an input that maps to unset initial in the core request. Change ====== If the value of initial in increment/decrement is negative, map this to 'unset' in the core request. This means that DocuemntNotFoundException will be raised if the document does not exist. Results ======= All tests pass Change-Id: I0e2b0889707e3020b2b2a5b0811acf7347abe098 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/217503 Reviewed-by: Jared Casey <[email protected]> Tested-by: Build Bot <[email protected]>
Motivation ========== The SDK should adhere to the RFC. Modification ============ * Update array_addunique to only accept a single value * Remove comprehension logic and pass value through to bindings * Update tests to confirm changes Results ======= All tests pass Change-Id: If583dd6e3d8e2528fe64785fe2015eb0e9bc62c3 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/217830 Reviewed-by: Michael Reiche <[email protected]> Tested-by: Build Bot <[email protected]>
Motivation ========== Allow users to output C++ core logging to file. Modification ============ * IF PYCBC_LOG_FILE environment variable is set, use C++ core file logger. NOTE: PYCBC_LOG_LEVEL must be set as well. Results ======= * C++ core logging outputs to file when PYCBC_LOG_LEVEL and PYCBC_LOG_FILE are set. Change-Id: I59029bc36b233f8b783d97f3832b9e4e3d839ed1 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/217909 Reviewed-by: Michael Reiche <[email protected]> Tested-by: Build Bot <[email protected]> Reviewed-by: Sergey Avseyev <[email protected]>
Changes ======= * PYCBC-1625: Update multi methods to commited (e.g. remove uncommitted note in docstrings) * PYCBC-1628: Update connection InvalidArgumentException message if authenticator provided in kwargs. Change-Id: I5dbe677ef392fa77b1c1e4130ff4ea4d8f6a2087 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/217902 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
Change-Id: I3ef332dc067dd9f1be0109fc1349c7b49e711b16 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/217915 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
Motivation ========== The C++ core has ExtBinarySupport for transactions, so the Python SDK can also support that extension. Modification ============ * Update transaction bindings to pass a codec::encoded value to the C++ core replace and upsert transaction operations * Update transaction bindings to handle feature_not_available * Update transaction logic to utilize a transcoder instead of serializer * Update tests to confirm binary object support Change-Id: I4802ea596fadd2aa84c6b780dbc670b2f965b62e Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/217984 Reviewed-by: Dimitris Christodoulou <[email protected]> Tested-by: Build Bot <[email protected]>
Motivation ========== Provide users with a version of the Couchbase Python Client that supports the latest version of Python (3.13). Modification ============ * Update logger binding logic to handle CPython API moving `_Py_ISFinalizing` to public (e.g. `Py_IsFinalizing`). Results ======= * Python 3.13 build passes * All tests pass Change-Id: I8bc67b772050df19378dd21715ae6db0b757532e Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/219094 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
Motivation ========== Provide confidence that various acouchbase utilities operate as expected. Modification ============ * Added test cases to validate expected behavior of the `call_async_fn` methods. Results ======= All tests pass expected for ones skipped due to pending completion of a PYCBC. Change-Id: I14ce19155c5c8a212bcfc9f11d650b616d60b7a0 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/219452 Reviewed-by: Dimitris Christodoulou <[email protected]> Tested-by: Build Bot <[email protected]>
Changes ======= * Remove finally block from txns call_async_fn utility method * Confirm functionality via previously written tests Change-Id: I89c6b08015bb06fab1a11099424c2684f966ce17 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/219460 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
Motivation ========== We already include the CMake Package Manager (CPM) cache with the PyPI source tarball. Therefore, users should not need the internet when building from source. Also, if building from Github source, as long as the CPM cache has been configured, the actual build step should also not need internet. Modification ============ * Fix how the CMake option `COUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE_ROOT` is set * Add `PYCBC_DOWNLOAD_MOZILLA_CA_BUNDLE` build environment variable that user can set to specify if the Mozilla CA bundle should be downloaded or not Results ======= If the CPM cache already exists (sdist from PyPI) or has been configured (Github) the SDK can be built from source without an internet connection. Change-Id: I80066e117665f9d8acb8bf85e204788fab0c713f Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/219397 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
Motivation ========== Update user agent generation work with changes in C++ core that follow the RFC. Modification ============ * Pass in Python SDK version as CMake option to C++ core * Change user agent extra to only provide Python version as C++ core provides OS and platform info Change-Id: Iaefd7176e23c897569331868375d801f8a381623 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/219594 Tested-by: Build Bot <[email protected]> Reviewed-by: Sergey Avseyev <[email protected]>
Change-Id: I87a130350e84dd1f3685a0b1715970f0f9421335 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/219834 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
Motivation ========== Recent updates to Jenkins have lead to macos arm tests failing with an OSError. Modification ============ Update test suite logic to download arm64 binary for macos platforms when on an arm64 architecture. Results ======= All tests pass. Change-Id: Ib0c8773ecb9c5df806037cfbb94d43519e53802b Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/221171 Tested-by: Build Bot <[email protected]> Reviewed-by: Charles Dixon <[email protected]>
…API docs Changes ======= Added to API docs: * CreateCollectionSettings * update_collection and relevant classes (UpdateCollectionSettings, UpdateCollectionOptions) * max_expiry & history CollectionSpec properties Change-Id: I9bace3898f5184abe29a1e5a2f37dd80bd4cd4b2 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/221999 Tested-by: Build Bot <[email protected]> Reviewed-by: Jared Casey <[email protected]>
Replace the unconditional build requirement on `cmake` with one that is added only if no system executable can be found. This ensures that the system CMake version is used when available, and this can be important when system CMake carries downstream patches for the platform. When no CMake executable is found, `cmake` is pulled in via `setup_requires`, and the previous behavior is preserved. Note that in order to accommodate this change, I had to remove the early check for CMAKE_EXE being present. This means that it is now possible to use `setup.py` without having CMake installed, and it will only fail when actually trying to compile the extension. Change-Id: I3bc31206285168952a7b3f98d2c43a3997f95801 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/222207 Reviewed-by: Jared Casey <[email protected]> Tested-by: Build Bot <[email protected]>
Motivation ========== The current path of using the C++ core async_attempt_context adds complexity to both the Python SDK and C++ core (the Python SDK is the only client using the async_attempt_context logic). Migrating to using transaction_context will place the Python SDK inline with other wrappers and also allow some code removal/cleanup in the C++ core. Modification ============ * Remove attempt_context and use transaction_context instead * Remove executing the transaction lambda in the bindings * Rearrange how transaction exceptions are built in the bindings * Update Python (non-binding) transaction code to execute transaction logic Results ======= All tests pass without any modification to tests. Change-Id: Iaca68e5d36507bcc64d2cd34afc8e244dc819fc4 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/221542 Tested-by: Build Bot <[email protected]> Reviewed-by: Dimitris Christodoulou <[email protected]>
TransactionGetResult Changes ======= * Move transaction_get_result struct to use std::unique_ptr instead of raw pointer * Only set the transaction_get_result's TransactionGetResult when necessary Change-Id: I00398c96d40fc3dc9dad18f1a62be92551039d0d Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/222085 Reviewed-by: Dimitris Christodoulou <[email protected]> Tested-by: Build Bot <[email protected]>
Changes ======= * Add function to attempt to determine the local Python3 version * Use local Python3 if found, otherwise default to version CMake is able to find Change-Id: Ibcaca99b723fa9e5ecf4e36bd11ab7603393dda1 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/222172 Reviewed-by: Dimitris Christodoulou <[email protected]> Tested-by: Build Bot <[email protected]>
Change-Id: Ic924d07237eed064e6683288b24aff8b0e922054 Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/222461 Reviewed-by: Michael Reiche <[email protected]> Tested-by: Build Bot <[email protected]>
Motivation ========== Operations do not currently take into account server groups. For reading from replica servers we need to provide a way for users to be able to read from specific groups, which can correspond to availablity zones. Doing so helps users to reduce costs of sending requests across availability zones. Changes ======= * Add a preferred_server_group option to ClusterOptions and propagate it to the C++ core * Add a read_preference option in replica read operations and propagate it to the C++ core Results ======= All tests pass Change-Id: Ib98a92d9cf141e4e6dbbbdeb9e43d17aa5811d6e Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/221585 Reviewed-by: Jared Casey <[email protected]> Tested-by: Build Bot <[email protected]>
Motivation ========== The transactions spec now includes a get_replica_from_preferred_server_group in the attempt context. We should add support for it, utilizing the corresponding method in the C++ core. Changes ======= Add a get_replica_from_preferred_server_group method to the attempt context in both the blocking & async APIs. Change-Id: Iff7311a45b0bfc18aab363a3697949d25af6256a Reviewed-on: https://review.couchbase.org/c/couchbase-python-client/+/221686 Tested-by: Build Bot <[email protected]> Reviewed-by: Jared Casey <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.