Skip to content
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
wants to merge 703 commits into
base: master
Choose a base branch
from
Open

update #1

wants to merge 703 commits into from

Conversation

griels
Copy link
Owner

@griels griels commented Mar 14, 2020

No description provided.

@griels griels marked this pull request as ready for review March 14, 2020 09:43
thejcfactor and others added 29 commits December 1, 2021 18:14
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]>
thejcfactor and others added 30 commits June 14, 2024 16:02
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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.