Couchbase Go SDK Release Notes

Release notes, installation instructions, and download archive for the Couchbase Go Client.

These pages cover the 2.0 versions of the Couchbase Go SDK (3.0 SDK API). For release notes, download links, and installation methods for 1.6 and earlier releases of the Couchbase Go Client, please see the 1.x Go Release Notes & Download Archive.

SDK Installation

If you are using Go 1.13+ then installing the Couchbase Go SDK is similar to installing most other Go projects:

$ go get github.com/couchbase/gocb/v2@v2.0.3
In line with the Golang project, we support both the current, and the previous, versions of Go. Older versions may work, but are not supported.

API Documentation

The most current and up to date API Documentation is always available through the godoc website.

Version 2.0.3 (17 March 2020)

Version 2.0.3 is a maintenance release for the Go SDK 2.0.0.

New Features and Behavioral Changes

  • GOCBC-662: The server requires that any subdoc xattr ops are at the beginning of the ops list. If the user provides an ops list containing subdoc xattr ops out of order, the SDK will now reorder it for them and then reorder it back again when it gets the result. This ensures that ContentAt works as expected.

  • GOCBC-700: Made improvements to errors returned from management operations. They now provide more contextual information.

  • GOCBC-716: SDK now returns a FlushNotEnabled error if bucket flush not enabled.

  • GOCBC-719: SDK now consistently creates tracing spans for all HTTP requests.

  • GOCBC-728: Added cluster level Ping operation.

  • GOCBC-807: Updated best effort retry strategy to use an exponential backoff calculator.

  • GOCBC-820: Removed context.Context from search index manager operations. Note that whilst this is a breaking change it was deemed best to break it and make sure any users who are using it know that they are using unused functionality.

Fixed Issues

  • GOCBC-814: Fixed issue where search was looking for incorrect field in the JSON response.

  • GOCBC-817: Fixed issue where opening a bucket with the same name twice led to incorrect behaviour on both buckets.

Version 2.0.2 (21 February 2020)

Version 2.0.2 is an off-cycle release for the Go SDK 2.0.0.

New Features and Behavioral Changes

  • GOCBC-805: Updated timeout behavior across the SDK to be consistent. If an operation level timeout is provided then it is used, otherwise the respective global timeout is used.

Fixed Issues

  • GOCBC-804: Fixed issue with timeouts not being respected for HTTP requests, leading to them never timing out.

Version 2.0.1 (19 February 2020)

Version 2.0.1 is a maintenance release for the Go SDK 2.0.0.

New Features and Behavioral Changes

  • GOCBC-775: Improve error message for when performing cluster level operations with no connections available.

  • GOCBC-776: Added support for KVDurableTimeout.

  • GOCBC-786: Improve error messages for the UserManager GetUser function.

Fixed Issues

  • GOCBC-701: Fixed issue with enhanced prepared statements not being used.

  • GOCBC-702: Fixed issue with CA root certificates not being able to be provided.

  • GOCBC-759: Fixed issue with streaming results for HTTP based services timing out unexpectedly.

  • GOCBC-772: Fixed issue with many of the management API functions timing out immediately.

  • GOCBC-773: Fixed issue with queries that do not return rows (e.g. mutations) causing errors.

  • GOCBC-777: Fixed issue with failing operations causing nil pointers.

  • GOCBC-783: Fixed issue with Exists returning incorrectly if the document was recently deleted.

  • GOCBC-784: Fixed issue with Unlock returning a doc not found error instead of cas mismatch.

  • GOCBC-787: Fixed issue with some (xattr related) subdoc operations sending invalid packets.

  • GOCBC-789: Fixed issue with search index manager FreezePlan function using an invalid HTTP method.

  • GOCBC-790: Fixed issue with user manager sometimes parsing user role origins incorrectly.

  • GOCBC-796: Fixed issue with cccp poller hanging if the get cluster config op timed out.

Version 2.0.0 (18 January 2020)

Version 2.0.0 is the first release for the Go SDK 2.0.0.

New Features and Behavioral Changes

  • GOCBC-510: Dropped support for connecting using the http scheme.

  • GOCBC-534: Added support for retry handling.

  • GOCBC-652: Added support for circuit breakers.

  • GOCBC-655: Added support for enhanced timeout errors providing more information about operations which timeout.

  • GOCBC-656: Added support for threshold logging tracer.

  • GOCBC-680: Updated how we expose and handle errors.

  • GOCBC-694: A large number of updates including: How query and analytics results are iterated. Minor renaming of various types. Moving search facets, sorting, and queries to a search subpackage. Removing serializers.

  • GOCBC-740: Updated expiry options to be time.Duration.

  • GOCBC-760: Moved authenticator to ClusterOptions.

Pre-releases

Numerous Alpha and Beta releases were made in the run-up to the 2.0 release, and although unsupported, the release notes and download links are retained for archive purposes here.