Couchbase Python SDK Release Notes

Installation

You may install previous versions of the SDK using pip (after installing the required dependencies)

pip install git+https://github.com/couchbase/couchbase-python-client@VERSION

where VERSION is the version you wish to install. For example, to install version 2.0.8:

pip install git+http://github.com/couchbase/couchbase-python-client@2.0.8

Upgrading

New versions of the Python SDK take advantage of features added in recent versions of libcouchbase. Be sure to c-sdk:relnotes-c-sdk.adoc before making a major upgrade to the Couchbase Python client.

Python SDK 2.5.2 Release Notes (December 4 2018)

pip install couchbase==2.5.2

Enhancements

  • PYCBC-547 Allow the user to set deferred query timeout easily

Fixes

  • PYCBC-542 Correct the "plain text" example in n1ql_query API documentation

  • PYCBC-543 Handle multiresult exception entries without a success field

  • PYCBC-550 Correct the txcouchbase get_multi example

  • PYCBC-554 Mandate installation of PEP484 typing module on all systems

  • PYCBC-548 Fix AnalyticsIngester docs

Python SDK 2.5.1 Release Notes (November 6 2018)

pip install couchbase==2.5.1

Please note, with the end of support for Microsoft Visual Studio 2008 (VC9), which is required to build binary extensions for Python 2.7 on Windows, with this release we no longer build for Python 2.7 on Windows.

However, we are now shipping binary wheels for Python 3 on Windows, which means that you can now download Windows binaries (if available for your Python 3 version) simply by running the pip command above, rather than manually downloading the binaries or sources.

Enhancements

  • PYCBC-531 Analytics KV Ingress for Python

  • PYCBC-532 Analytics Deferred Queries for Python

  • PYCBC-493 Add alternate name/alternate port config support

  • PYCBC-515 Reject unsupported Python versions in setup.py

  • PYCBC-535 Support Python 3.7 Async Interface

Python SDK 2.5.0 Release Notes (October 2 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.5.0

Enhancements

  • PYCBC-523 - add parameterized query support for analytics

  • PYCBC-524 - Update Analytics support for beta

  • PYCBC-526 - Add N1QL query metrics option and server results

Fixes

  • PYCBC-528 - Handle keyless exceptions in multiresult

Python SDK 2.4.2 Release Notes (September 7 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.4.2

Enhancements

Fixes

  • PYCBC-522 - Fix remaining lost spans

  • PYCBC-525 - Remove libxml2-python3 from dev_requirements.txt

Python SDK 2.4.1 Release Notes (August 17 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.4.1

Due to a known issue [PYCBC-522]: In this release, Response Time Observability and tracing are available, but off by default due to tracing contexts being lost in some instances.

This may be enabled with "enable_tracing=true" on the connection string, and is likely suitable for most applications. Once resolved, it will be enabled by default in a future 2.4 release.

Enhancements

  • PYCBC-504 - In python 3.7 'async' is a keyword. The package 'couchbase.async' have to be renamed

Fixes

  • PYCBC-499 - Admin user_upsert with external type results in error due to password field being sent

  • PYCBC-507 - overhead too high with tracing enabled

Python SDK 2.4.0 Release Notes (July 4 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.4.0

Due to a known issue [PYCBC-507]: In this release, Response Time Observability and tracing are available, but off by default owing to an unacceptable level of overhead in the SDK and libcouchbase.

This may be enabled with "enable_tracing=true" on the connection string,and is likely suitable for most applications.  Once resolved, it will be enabled by default in a future 2.4 release.

Enhancements

  • PYCBC-439 - Support FTS queries in Async wrappers

  • PYCBC-500 - Use common error and exceptions with FLE

  • PYCBC-503 - Update Travis APT source to use up-to-date libcouchbase

  • PYCBC-482 - add tracing context to timeout response

Fixes

  • PYCBC-485 - missing threshold logging tracer output with simple test

  • PYCBC-487 - No support for CertAuthenticator

  • PYCBC-488 - Cert auth does not raise mixed mode errors with cert and auth

  • PYCBC-489 - Cert auth and open bucket with password do not raise error

  • PYCBC-496 - cluster_manager() method causes a crash

  • PYCBC-506 - Disable tracing unless specified in connection string

  • PYCBC-502 - Fix ImportError in preliminary analytics support

  • PYCBC-508 - Fix Windows compilation problems

  • PYCBC-509 - Support official 'desc' keyword for FTS Sort

Python SDK 2.4.0-beta2 Release Notes (June 5 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.4.0-beta2

Enhancements

  • PYCBC-481 - Field encryption packaging/distribution change

  • PYCBC-486 - Document Threshold Logger parameters

  • PYCBC-490 - Interpolate printf-style logging input to logging function using vsnprintf

  • PYCBC-492 - Update Travis configuration to reflect supported platforms

  • PYCBC-494 - Support get_key_id method for Crypto V1

Fixes

  • PYCBC-491 - Crash when only Threshold Tracer is enabled, not parent tracer

Python SDK 2.4.0-beta Release Notes (May 16 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.4.0-beta

Enhancements

  • PYCBC-452 - Implement Log Redaction

  • PYCBC-465 - Add Snappy Compression Feature

  • PYCBC-468 - Add encrypted field support to Python SDK

  • PYCBC-469 - Field Encryption, Asymmetric Key Support

  • PYCBC-474 - Add Profile N1QL Query Parameter

  • PYCBC-464 - Tracing Server Duration, Zombie Responses

Python SDK 2.3.5 Release Notes (May 1 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.3.5

Fixes

  • PYCBC-477 - PrefixQuery causes error with unicode characters

  • PYCBC-472 - Evaluate/merge "TypeError: _assign_kwargs() got an unexpected keyword argument ' PR

Python SDK 2.4.0a2 Release Notes (April 13 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.4.0-dp2

This is an Alpha developer preview of operation duration observability (also known as tracing).

You will need to follow the instructions here on GitHub to install this feature:

Enhancements

Python SDK 2.4.0a1 Release Notes (February 26 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.4.0a1

This is an Alpha developer preview of log redaction and compression.

Enhancements

Python SDK 2.3.4 Release Notes (February 14 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.3.4

Enhancements

  • PYCBC-451 - Python SDK Documentation could use example of upsert involving JSON text

Fixes

  • PYCBC-455 - Test/fix compilation on MacOS High Sierra

  • PYCBC-458 - Clang and Python warnings during installation of Python SDK 2.3.2

  • PYCBC-463 - TXIoEvent errors out application upon connection loss

Python SDK 2.3.3 Release Notes (January 12 2018)

pip install git+http://github.com/couchbase/couchbase-python-client@2.3.3

Enhancements

  • PYCBC-412 - add health check function into lcb check

  • PYCBC-453 - Implement Certificate Authentication

  • PYCBC-451 - Python SDK Documentation could use example of upsert involving JSON text

Python SDK 2.3.2 Release Notes (December 7 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.3.2

Enhancements

  • PYCBC-445 - Implement/test support for KV with homogenous IPv6

Fixes

  • PYCBC-450 - N1QL Consistency documentation say default is 'none' should be 'not_bounded'

Python SDK 2.3.1 Release Notes (November 8 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.3.1

Enhancements

  • PYCBC-419 - Fast fail View queries for Ephemeral buckets

  • PYCBC-412 - add health check function into lcb check

Python SDK 2.3.0 Release Notes (October 25 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.3.0

Enhancements

  • PYCBC-442 - Update required version of libcouchbase in Prerequisites

  • PYCBC-397 - SDK Enhanced Error Messages

  • PYCBC-420 - Expose more N1QL Query Options

  • PYCBC-424 - Rename subdoc create / upsert flags to match RFC

  • PYCBC-428 - Update README with details on how to authenticate with CB server 5.0

  • PYCBC-433 - Add Cluster.Authenticate('username', 'password') shortcut

Fixes

  • PYCBC-434 - Fix bad host test

  • PYCBC-435 - get_fulldoc and upsert_fulldoc should not be in subdoc API

  • PYCBC-436 - Should not encode forward slash '/' in connection string query string parameters

Python SDK 2.2.6 Release Notes (August 25 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.2.5
  • Add Couchbase 5.0 User Management API

  • Update ClusterManager to be compatible with Couchbase 5.0

  • Fix bug where cluster.open_manager() would only work on localhost

  • Fix bug where duplicate N1QL queries were submitted

Python SDK 2.2.5 Release Notes (June 6 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.2.5

This version has a known defect which may result in duplicate N1QL statements being sent. This may cause unwanted mutations or spurious errors when using the N1QL UPDATE or INSERT statements. You may work around this by either stricter criteria for update, for example WHERE meta().cas = xyz. The issue affects versions 2.2.3-2.2.5 (inclusive) and will be fixed in version 2.2.6

  • Couchbase 5.0 Subdocument additions including:

    • Full-doc get/set for use with xattrs

    • get_count to get number of items/elements within dictionary/array

    • insert_doc/create_doc option for mutate_in

  • Fix bug where connection string options were not passed when using Cluster interface

  • Fix bug where GEvent timer was not calling base class initializer

Python SDK 2.2.4 Release Notes (May 2 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.2.4

This version has a known defect which may result in duplicate N1QL statements being sent. This may cause unwanted mutations or spurious errors when using the N1QL UPDATE or INSERT statements. You may work around this by either stricter criteria for update, for example WHERE meta().cas = xyz. The issue affects versions 2.2.3-2.2.5 (inclusive) and will be fixed in version 2.2.6

  • Add new FTS query types. This adds GeoDistanceQuery, GeoBoundingBoxQuery, and TermRangeQuery types.

  • Add new advanced FTS sorting options. You can now use couchbase.fulltext.Sort* classes in addition to a list of sort fields for couchbase.fulltext.Params.sort

  • Fixed memory leak when using the Item API. This leak would be triggered if passing an Item with an existing value to a get() call. In those cases, the prior value would leak memory and never have its reference count decremented.

  • Add new user management functionality in the cluster manager (Bucket.cluster_manager()). These functions have the user_* prefix and allow retrieval and modification of built-in Couchbase users.

Python SDK 2.2.3 Release Notes (April 4 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.2.3

This version has a known defect which may result in duplicate N1QL statements being sent. This may cause unwanted mutations or spurious errors when using the N1QL UPDATE or INSERT statements. You may work around this by either stricter criteria for update, for example WHERE meta().cas = xyz. The issue affects versions 2.2.3-2.2.5 (inclusive) and will be fixed in version 2.2.6.

  • Add experimental Couchbase Analytics support. This offers an interface very similar to N1QL. You can issue a query using the Bucket._analytics_query() method. Requires libcouchbase >= 2.7.3

  • Add Authenticator and Cluster interface, for parity with other SDKs. See the couchbase.cluster module for more information.

Python SDK 2.2.2 Release Notes (March 7 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.2.2
  • Fix typo in Bucket.queue_size() method which caused it to fail.

Python SDK 2.2.1 Release Notes (February 7 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.2.1
  • Provide some better convenience functionality for SubdocResult

  • Add experimental Xattr support (Requires libcouchbase >= 2.7.0)

Python SDK 2.2.0 Release Notes (January 3 2017)

pip install git+http://github.com/couchbase/couchbase-python-client@2.2.0
  • Update the FTS (couchbase.fulltext) API to support the sort parameter. (couchbase.fulltext.Params.sort)

  • Rename fulltext.StringQuery to QueryStringQuery

  • Don’t crash in debuggers when an exception is thrown. This would previously assume (assert in C) that the current exception’s reference count is fixed at 1 when rethrowing. This isn’t valid in debuggers which may intercept exception and their frames beforehand.

  • Remove 'experimental' designation from data structure API.

Python SDK 2.1.3 Release Notes (December 6 2016)

pip install git+http://github.com/couchbase/couchbase-python-client@2.1.3
  • [PYCBC-366]: Fix crash on get_multi and Item API. If specific options were passed via ItemOptionsDict, it would crash the interpreter.

  • Don’t assume FTS search parameters use ASCII encoding. This fixes an encoding issue where certain unicode characters caused an exception when found in a search term.

  • Fix bug in FTS where invalid arguments to the Python API (e.g. search()) would cause the current exception state to be clobbered, resulting in a confused interpreter and an even more confusing error.

  • Rename data structure API names to be in conformity with SDK-RFC.

Python SDK 2.1.2 Release Notes (November 1 2016)

pip install git+http://github.com/couchbase/couchbase-python-client@2.1.2
  • Make N1QL scan consistency constants more similar to the ones used on the server. You may now use couchbase.n1ql.REQUEST_PLUS, couchbase.n1ql.STATEMENT_PLUS in addition to couchbase.n1ql.CONISTENCY_REQUEST

  • Allow cross-bucket ('cluster-level') queries. You can now query across multiple protected buckets by doing the following:

    • Bucket.add_bucket_creds(bucket_name, bucket_password) for each password protected bucket you wish to access. This only needs to be done once.

    • For each query (couchbase.n1ql.N1QLQuery) you can set the cross_bucket=True property.

  • The design_list method has been added to the BucketManager (i.e. couchbase.bucket.bucket_manager()) class. You can now list all design documents belonging to a bucket.

Python SDK 2.1.1 Release Notes (September 30 2016)

pip install git+http://github.com/couchbase/couchbase-python-client@2.1.1

Python SDK 2.1.0 Release Notes (June 21 2016)

pip install git+http://github.com/couchbase/couchbase-python-client@2.1.0
  • Fix exception on SubdocResult.access_ok. This would previously result in an exception due to a typo when referencing a library constant

  • Fix bug in index management when specifying non-primary indexes. Previously the fields in the indexes would be ignored or wrongly encoded when sent to the server. This fix goes in conjunction with fixes in the C SDK 2.6.1