Couchbase Scala SDK Release Notes and Archives

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

    Version 1.0.5 (2 June 2020)

    Version 1.0.5 is the sixth release of the Scala SDK. It brings no new changes to the Scala client itself, but inherits enhancements and bugfixes over the last stable release from the core-io dependency.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.5

    • com.couchbase.client:core-io:2.0.6

    • io.projectreactor:reactor-core:3.3.5.RELEASE

    • org.reactivestreams:reactive-streams:1.0.3


    • JVMCBC-852: Bumped Reactor to 3.3.5, Netty to 4.1.50.Final, and Jackson to 2.11.0.

    • JVMCBC-693: For performance, the KV bootstrap sequence is now partially pipelined.

    Bug Fixes

    • JVMCBC-849: Duplicate global loading exceptions are now swallowed to remove redundant warnings from logging (this was a cosmetic-only issue).

    Version 1.0.4 (7 May 2020)

    Version 1.0.4 is the fifth release of the Scala SDK. It brings no new changes to the Scala client itself, but inherits enhancements and bugfixes over the last stable release from the core-io dependency.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.4

    • com.couchbase.client:core-io:2.0.5

    • io.projectreactor:reactor-core:3.3.4.RELEASE

    • org.reactivestreams:reactive-streams:1.0.3


    • JVMCBC-841: Bumped Netty dependency to 2.0.30, and reactor to 3.3.4.

    Bug Fixes

    • JVMCBC-845: If a rebalance is stopped in the middle, an edge case occasionally causes KV ops to time out as the fast forward map is chosen over the retry. The behavior has now been changed so that the client will try the old and new servers to make sure the operation eventually gets dispatched to the right node.

    Version 1.0.3 (7 April 2020)

    Version 1.0.3 is the fourth release of the Scala SDK. It brings no new changes to the Scala client itself, but inherits enhancements and bugfixes over the last stable release from the core-io dependency.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.3

    • com.couchbase.client:core-io:2.0.4

    • io.projectreactor:reactor-core:3.3.1.RELEASE

    • org.reactivestreams:reactive-streams:1.0.2


    • JVMCBC-830: Added more convenient overloads for SecurityConfig and CertAuth. These overloads initialize both the SecurityConfig and the CertificateAuthenticator directly from a KeyStore or TrustStore.

    • JVMCBC-831: Improves timeout for waitUntilReady — the waitUntilReady helper should now throw a proper timeout exception.

    • JVMCBC-832: Added support for multiple ports per hostname in the connection string — without having to use the explicit SeedNode set overload.

    • JVMCBC-835: Using "localhost:8091" as a connection string would set the kv bootstrap port to 8091, which is not desired behavior. To prevent this from happening again, the code now checks for this condition, fails fast, and also provides guidance on what the connection string should look like instead.

    • JVMCBC-836: Enabled Unordered Execution by Default.

    • JVMCBC-837: Updates OpenTelemetry to 0.3 (beta).

    • JVMCBC-839: Bootstrap will now correctly use the mapped port if alternate addr is present.

    Bug Fixes

    • JVMCBC-834: 'CollectionNotFoundException' now triggers a retry, and if no collection refresh is currently in progress it will proactively trigger a new one. Now Docs created under custom collection should no longer raise an exception when a collection has been created in the meantime, but the collection is not found as no refresh is in progress.

    • JVMCBC-826: A NullPointerException was occuring when LDAP is enabled. The code now explicitly fails the connection with a descriptive error message instructing the user what to do next (either use TLS which is preferred) or enable PLAIN on the password authenticator (insecure).

    • JVMCBC-827: Search query results row_hit typo resulted in 0 being returned for total rows. This has now been fixed.

    • JVMCBC-828: Omit internal config request in orphan reporting.

    Version 1.0.2 (3 March 2020)

    Version 1.0.2 is the third release of the Scala SDK, bringing enhancements and bugfixes over the last stable release.

    The supported and tested dependencies for this release are:

    • com.couchbase.client:scala-client:1.0.2

    • com.couchbase.client:core-io:2.0.3

    • io.projectreactor:reactor-core:3.3.1.RELEASE

    • org.reactivestreams:reactive-streams:1.0.2


    • JVMCBC-813: Improved error message for bucket is missing.

    • JVMCBC-815: Check if key exceeds size limits.

    • JVMCBC-818: Trimmed netty stack in connect failures for more readable output.

    • JVMCBC-819: Distinguished bucket not found in select bucket failures.

    • JVMCBC-823: Added a global component to the core id.

    • JVMCBC-825: Support added for new VATTR HELLO flag.

    • SCBC-43: With huge thanks to our community, who submitted the patch, it is now possible to build versions of the SDK for 2.11 and 2.13. Couchbase only officially provides, tests and supports a Scala 2.12 build currently, but users are welcome to build their own jars for 2.11 or 2.13 following the README instructions.

    Bug Fixes

    • SCBC-200: Dependencies now correctly shaded.

    • SCBC-207: Exists no longer returns wrong value if executed right after remove.

    • SCBC-216: Properly clear cache when repreparing/retrying query.

    • JVMCBC-824: Native Netty transports not included, resulting in fallback to default implementation. This was a regression in the 2.0.2 core-io release.

    • JCBC-1600: Using expiry together with document flags on a Sub-Document mutateIn no longer causes an incorrect flags field to be sent.

    Version 1.0.1 (5th February 2020)

    Version 1.0.1 is the second release of the 1.0 series, bringing new features, enhancements, and bugfixes over the last stable release.

    Stability Enhancements & Bug Fixes

    • SCBC-192: All scaladoc warnings fixed.

    • SCBC-193: When creating buckets, numReplicas can now be specified.

    New Features & Enhancements

    • SCBC-190: Exposed enableDnsSrv parameter on IoConfig(), allowing DNS SRV to be used.

    • SCBC-204: Added support for new server flag createAsDeleted — for internal use only.

    • SCBC-201: Exposed Java core environment through Scala ClusterEnvironment, allowing the event-bus to be accessed.

    • SCBC-198: Exposed environment getter through cluster. This allows a constructed environment to be shutdown without having to maintain a reference to it.

    Version 1.0.0 (17th January 2020)

    This is the first General Availability (GA) release of the new Couchbase Scala SDK. It brings a large number of improvements, bug-fixes and API changes from the previous beta release.

    Stability Enhancements & Bug Fixes

    • SCBC-147: QueryIndexManager should return only GSI indexes

    • SCBC-151: Make sure all reactive ops are deferred; this ensures that collection.reactive.remove(…​) won’t perform a remove until the SMono is subscribed to

    • SCBC-154: Make UserManager handle pre-LDAP clusters

    • SCBC-157: Handle projections of objects inside arrays correctly

    • SCBC-158: Handle 'too many set inserts' internal error while converting JSON to case classes

    • SCBC-163: ViewQuery does not send request

    • SCBC-167: Fix FTS consistentWith

    • SCBC-174: ReactiveCollection KV operations now do ClientVerified Observe check

    • SCBC-182: QueryOptions missing setters

    New Features & Enhancements

    • SCBC-190: Expose enableDnsSrv parameter on IoConfig(), allowing DNS SRV to be used

    • SCBC-192: All scaladoc warnings fixed

    • SCBC-204: Add support for new server flag createAsDeleted, for internal use only

    API Changes

    • SCBC-159: Fix semantics of datastructures so they behave more like Scala collections

    • SCBC-162: All ReactiveBinaryCollection methods should return SMono

    • SCBC-164: Align with latest view RFC

    • SCBC-136: Track all Java environment changes

    • SCBC-138: Replace management API Scala exceptions with core ones

    • SCBC-139: GetSelecter is using incorrect exceptions

    • SCBC-155: Rename *master to *active throughout

    • SCBC-187: Remove scopeExists and collectionExists from CollectionManager

    • SCBC-188: Align UserAndMetadata with latest RFC


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