Pre-release Archive Release Notes

    Release notes for the 3.0 Alpha & Beta Releases

    In the run-up to the SDK 3.0 API releases, several αλφα and βετα releases were made. Their release notes are maintained here for archive purposes. The 3.0 series release notes proper can be found here, along with install instructions for all supported platforms. Please note that none of the pre-releases listed below are supported; all supported (GA) releases can be found here.

    These are the pre-release α & β Release Notes maintained purely for archive and information purposes. These releases are unsupported. Supported (GA) releases can be found on the general 3.0 Release Notes page.

    Version 3.0.0-beta4 (21st Jan 2020)

    Known Issues

    • NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.

    • NCBC-2168: QueryException does not provide textual details coming from the server.

    • NCBC-2153: Fix failing integration tests for SDK3.

    • NCBC-2214: N1QL situational test failure - SvcRestartQuery.

    • NCBC-2213: N1QL situational test failure — Rb1SwapQuery.

    Fixed Issues

    • NCBC-2229: Client context ID should be a UUID

    • NCBC-2231: Remove Rows from the QueryResults

    • NCBC-2239: CollectionNotFoundException when collections enabled as DP in CB 6.5-beta

    • NCBC-2240: Cluster constructor duplicates Cluster connect

    • NCBC-2242: Cluster exposes deferred analytics queries

    • NCBC-2243: Cluster exposes "ClusterManager"

    • NCBC-2246: QueryOptions do not align with the RFC

    • NCBC-2247: QueryResult must have metadata not at the toplevel

    • NCBC-2249: Bucket#views must be called Bucket#viewIndexes

    • NCBC-2250: View MetaData must be called ViewMetaData

    • NCBC-2251: AnalyticsOptions do not align with RFC

    • NCBC-2252: AnalyticsResult must not expose deferred handle

    • NCBC-2253: Analytics "MetaData" must be called "AnalyticsMetaData"

    • NCBC-2254: Analytics MetaData does not align with the RFC

    • NCBC-2257: GetAndLock argument not called expiry but lockTime

    • NCBC-2258: Unlock must have cas as mandatory argument

    • NCBC-2259: MutateIn must return MutateInResult

    • NCBC-2261: GetOptions must not have WithCreatePath

    • NCBC-2262: UpsertOptions must not take cas

    • NCBC-2263: InsertOptions must not take cas

    • NCBC-2264: GetAndTouchOptions must not take cas

    • NCBC-2265: TouchOptions must not take cas

    • NCBC-2269: BucketManager#UpsertBucketAsync should be UpdateBucketAsync

    • NCBC-2281: Cannot bootstrap when cluster contains a non-k/v node

    • NCBC-2283: missing not_bounded in view stale consistency

    • NCBC-2296: InvalidCastException in RetryOrchestrator

    New Features and Behavioral Changes.

    • NCBC-2133: Implement Retry Handling API - FTS, Analytics, Query, Views

    • NCBC-2208: Add Circuit Breakers per RFC for KV

    • NCBC-2228: Add Circuit Breakers per RFC for Services

    • NCBC-2020: Use IAsyncEnumerable For Streaming Queries

    • NCBC-2223: Update 2.4.0 to a later version

    • NCBC-2224: Remove .netcoreapp2.1 from Couchbase.csproj

    • NCBC-2225: Update Microsoft.NET.Test.Sdk to v16.4.0 in tests

    • NCBC-2226: Add .NET Standard 2.1 Target

    • NCBC-2248: All (non-default) collection APIs must be marked as volatile

    • NCBC-2255: Use IAsyncEnumerable for View Queries

    • NCBC-2256: Use IAsyncEnumerable for Analytics Queries

    • NCBC-2271: Align QueryMetaData with the RFC

    • NCBC-2278: Support asynchronous stream custom deserializers

    • NCBC-2284: Convert IByteConverter from an interface to static implementation

    • NCBC-2285: Public API Pre-3.0 Cleanup

    • NCBC-2291: Add CancellationToken to ISaslMechanism.AuthenticateAsync

    • NCBC-2292: Remove Optional<T> experiment

    • NCBC-2294: Remove sync overloads for FTS search

    • NCBC-2295: Replace Cluster.Connect with Cluster.ConnectAsync

    Version 3.0.0-beta3 (20th Dec 2019)

    Known Issues

    • NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.

    • NCBC-2168: QueryException does not provide textual details coming from the server.

    • NCBC-2153: Fix failing integration tests for SDK3.

    • NCBC-2214: N1QL situational test failure - SvcRestartQuery.

    • NCBC-2213: N1QL situational test failure — Rb1SwapQuery.

    Fixed Issues

    • NCBC-2185: Issue getting cluster map after Fo/Rebalance.

    • NCBC-2190: Error returned on bucket.DefaultCollection().

    • NCBC-2191: Services failing due to GetRandomNodeForService error.

    • NCBC-2205: No View service found after failover EP node.

    • NCBC-2210: Make EnableDnsSrveResolution be EnableDnsSrvResolution in ClusterOptions.

    • NCBC-2215: KV port missing when bootstrapping with GCCCP.

    New Features and Behavioral Changes.

    • NCBC-2206: Support custom logging factories via ILoggerFactory.

    • NCBC-2207: Remove all instances of 'master' to `active'.

    • NCBC-2211: Need to ensure that ClusterOptions properties are same as Foundation RFC.

    • NCBC-2212: Align exception names with changes made to Error Handling RFC.

    • NCBC-2195: Fix typo on cluster connect string validation.

    • NCBC-2196: Correct typo on view query internal variable.

    • NCBC-2203: Make all XxxOptions parameters optional and use defaults.

    • NCBC-2221: NotImplementedException thrown by PersistentListTests.

    Version 3.0.0-beta2 (20th Nov 2019)

    Known Issues

    • .NET Client 3.0.0-beta2 only works with Couchbase Server 6.5 beta releases, and will not work with Couchbase 6.0 and earlier. This will be fixed in the upcoming .NET CLient 3.0.0-beta3.

    • NCBC-2187: CollectionManager - 400: Not allowed on this version of cluster

    • NCBC-2168: QueryException does not provide textual details coming from the server

    • NCBC-2153: Fix failing integration tests for SDK3

    Fixed Issues

    • NCBC-1977: LogManager.Test_LogLevel_Debug unit test intermittently fails CI

    • NCBC-2123: FTS queries using wrong REST endpoint

    • NCBC-2136: SDK doesn't apply updated cluster map during rebalance

    • NCBC-2137: SDK does not retry NMVB responses

    • NCBC-2138: NetworkType.Default should not use external hostname / ports

    • NCBC-2140: Getting a document as a POCO doesn't serialize content properly

    • NCBC-2142: Make ConfigPollInterval default to 2.5 Seconds

    • NCBC-2149: ConfigConext throws NullReferenceException when processing new cluster maps

    • NCBC-2150: BootstrapUri is null for non-bootstrapped nodes

    • NCBC-2160: PublishDesignDocument should not remove _dev version

    • NCBC-2161: Update ViewQuery API to match SDK3 RFC

    • NCBC-2162: Fix build warnings in CouchbaseCollectionTests.SendAsync

    • NCBC-2173: Bootstrapping via config.json ignores connectionString property

    • NCBC-2186: Fix regression where collection support is not detected on the server.

    • NCBC-2188: When bootstrapping with GC3P the bootflag completed flag is not set

    • NCBC-2189: Fix view unit test where design doc name does not match what is expected

    New Features and Behavioral Changes

    • NCBC-2061: Implement Retry Handling API - Config and K/V only

    • NCBC-1802: CI Feature/Integration Test Completion for .NET SDK

    • NCBC-1869: Support TLS/SSL encryption

    • NCBC-2065: Review interface to verify "SDK 3" sdk-rfc compliance

    • NCBC-2134: Add support for SSL/TLS connections

    • NCBC-2143: Make config polling enabled by default

    • NCBC-2144: Make NMVB publish config returned in body

    • NCBC-2145: Update README with reference to release27 branch info

    • NCBC-2155: Consolidate Cluster constructors

    • NCBC-2174: Port Error Map from 2.X and integrate into 3.x

    • NCBC-2175: Port diagnostics API from SDK 2 and update to 3.0 RFC

    • NCBC-2181: Refactor exceptions and error handling to current RFC revision

    • NCBC-1846: .NET Core configuration support for multiple providers

    • NCBC-2046: Create zip and push to S3 during publishing

    • NCBC-2139: Update View Index manager

    • NCBC-2154: Add support for DNS-SRV

    • NCBC-2157: Refactor cluster and bucket internals into a Context class

    • NCBC-2158: Refactor Dispose pattern on cluster and context

    • NCBC-2171: Make scope and collection definitions sync with RFC

    • NCBC-2184: Exists should use getMeta instead of observe

    Version 3.0.0-beta1 (3rd Oct 2019)

    Known Issues

    • NCBC-2137: SDK does not retry NMVB responses

    Fixed Issues

    • NCBC-1992: Query fails if bucket does not bootstrap when G3CP not supported

    • NCBC-2035: Default transcoder is having issues with deserialize

    • NCBC-2043: Make IBucketInternal.Send implicit (hidden) in CouchbaseBucket

    • NCBC-2048: Get and Exist return do not return CAS with result

    • NCBC-2067: SDK3 LookupIn doesn't support retrieving full doc

    • NCBC-2068: Add ClusterOptions to Cluster Ctor and static Connect method per RFC

    • NCBC-2070: ConnectionExtension doesn't print bucket name when failing auth

    • NCBC-2073: Add Collection accessor methods to IBucket w/CollectionOptions

    • NCBC-2074: No way to get default Scope from the bucket

    • NCBC-2076: Couchbase.Management.User name property does not match RFC

    • NCBC-2078: Manager method names don't match RFC

    • NCBC-2079: UserManager.create should be called upsert, and not throw UserAlreadyExistsException

    • NCBC-2080: IUserManager.upsertUser signature doesn't match RFC

    • NCBC-2081: User manager doesn't distinguish between innate roles and roles inherited from groups

    • NCBC-2082: User Manager needs to be updated for latest RFC changes

    • NCBC-2083: BucketSettings field names diverge from RFC

    • NCBC-2085: Off-by-one error in subdoc threshold calculation

    • NCBC-2086: Projections with more than 16 fields not implemented

    • NCBC-2088: Fix bootstrapping isssues introduced by refactoring

    • NCBC-2089: Unable to bootstrap if more than one scope/collection defined

    • NCBC-2091: Sub-Document ArrayAppend and others stores each element as a JSON array

    • NCBC-2092: Add array overloads to ArrayAppend, ArrayPrepend and ArrayInsert

    • NCBC-2095: AggregateException when timeouts occur

    • NCBC-2096: Fix build warnings

    • NCBC-2101: There are no XXXOptions for Sub-Doc Operations/Specs

    • NCBC-2110: Don't reorder bucket config nodeExts during bootstrap

    • NCBC-2126: Update Query parameter types

    • NCBC-2132: Bucket manager performing racey operations

    • NCBC-2135: Extras are not correctly read for all operations

    • NCBC-2136: SDK doesn't apply updated cluster map during rebalance

    New Features and Behavioral Changes

    • NCBC-2063: Add Datastructures v2 for "SDK3"

    • NCBC-2027: Port HTTP Streaming from SDK 2.0

    • NCBC-2029: Integrate HTTP streaming into Bootstrapping process when CCCP/GC3P not supported

    • NCBC-2099: Add Scope accessor overloads to IBucket

    • NCBC-2100: Add Collection accessor to IScope w/CollectionOptions

    • NCBC-2102: GetAsync lacks ability to include expiry in result via Sub-Doc

    • NCBC-1930: Decrease the default 'TcpKeepAliveTime' for SDK3

    • NCBC-1938: Implement GetAnyReplica and GetAllReplicas methods

    • NCBC-2001: Unify Nodes and NodesExt into a single structure

    • NCBC-2006: Implement Search Index Manager

    • NCBC-2009: Add Collection Manager

    • NCBC-2020: Use IAsyncEnumerable For Streaming Queries

    • NCBC-2023: Implement Memcached bucket

    • NCBC-2052: Make SDK components support Unit Testing with Mocks

    • NCBC-2060: Update enhanced prepared statements to use combined prepare & execute

    • NCBC-2064: Add query service fast prepare support

    • NCBC-2066: Refactor ConfigContext and Unit Tests

    • NCBC-2077: Suggestion: separate namespaces for each management service

    • NCBC-2087: Suggestion: separate namespace for KV service

    • NCBC-2093: Move QueryClient with Action<QueryOptions> to extension method

    • NCBC-2104: Add Transcoder/Serializer to options for all CRUD method on ICollection

    • NCBC-2108: Refactor StaleState to ScanConsistency in ViewOptions

    • NCBC-2111: Cluster implementation class should be internal

    • NCBC-2112: Reorganise services into simplified structure

    • NCBC-2121: Move expiry from IResult to IGetResult as it is now specific to Get operations.

    • NCBC-2124: Replace bool flag values for StoreSemantics enum

    • NCBC-2125: Refactor Parameters param to QueryOptions

    Version 3.0.0-alpha5 (30th July 2019)

    Download | API Reference — N/A | Nuget

    Known Issues


    Fixed Issues

    • NCBC-1970: Implementations of IOperation.GetValue hide XError response

    • NCBC-1987: Add JsonProperty to Term

    • NCBC-1988: Ensure only single XAttr commands are used with Sub-Doc

    • NCBC-1994: Remove thread.sleep from unit tests

    • NCBC-1996: Random LogManagerTests bug - Key Not Found thrown

    • NCBC-1998: Invalid Encoding parameter causes HTTP 400 bad request in Query

    • NCBC-2011: Allow LogManager's LoggerFactory to be set

    • NCBC-2014: Don’t throw PlatformNotSupported when unable to set KeepAlives

    • NCBC-2015: Configuration loses values when chaining fluent methods together

    • NCBC-2032: Single node cluster doesn't have nodeExt.Hostname set properly

    • NCBC-2034: Cluster fails to bootstrap because cluster config is null

    • NCBC-2042: JSON.NET uses Pascal casing instead of Camel casing on Ubuntu16

    New Features and Behavioral Changes

    • NCBC-1960: Add support for enhanced prepared queries

    • NCBC-1944: Add cluster config manager component

    • NCBC-1985: Provide config polling configuration settings and wireup

    • NCBC-1986: Enable cluster map update changes to refresh client state

    • NCBC-1997: Support G3CP bootstrapping

    • NCBC-1630: Investigate JSON.NET async API

    • NCBC-1959: Suffix all public asynchronous methods with 'Async'

    • NCBC-1990: Support refreshing connections when terminated

    • NCBC-1991: analytics using the .NET SDK at draft level

    • NCBC-1993: Throw NetworkErrorException when connection broken

    • NCBC-1995: Refresh error map and server features when creating new connection

    • NCBC-2000: Allow SDKD to view SDK internals

    • NCBC-2003: Add View Manager implementation

    • NCBC-2004: Implement Bucket Manager

    • NCBC-2005: Implement User Manager

    • NCBC-2007: Implement Query Index Manger

    • NCBC-2010: Fix build warnings

    • NCBC-2012: Make DefaultCollection a function, not property

    • NCBC-2039: Allow easy discoverability of configured services

    • NCBC-2040: Query fails if no GCCCP and don't open a bucket

    • NCBC-2041: Query API requires optional parameters

    • NCBC-2045: Cluster service clients / manager should be lazily loaded

    Version 3.0.0-alpha4 (11th June 2019)

    Download | API Reference — N/A | Nuget

    Known Issues


    Fixed Issues

    • NCBC-1958: Couchbase.LoadTests can now build on on non-Windows platforms

    • NCBC-1962: Connection used to bootstrap is returned to pool correctly

    • NCBC-1963: Friend assemblies are ignored during packaging allowing solution to pack correctly

    • NCBC-1968: XATTR parameter name in MutateIn now matches RFC

    • NCBC-1977: InMemoryLog can add missing categories to prevent intermittent unit test failure

    • NCBC-1982: FTS term unit test is no longer case sensitive to prevent intermittent unit test failure on Ubuntu

    New Features and Behavioral Changes

    • NCBC-1950: Improved support for automatic release publishing with CI

    • NCBC-1979: Spatial view queries are no longer available on the bucket API, as they are not supported from Couchbase Data Platform 6.0, upwards

    • NCBC-1917: Added support for ingesting Analytics queries into KV

    • NCBC-1961: Improved bootstrapping, based upon the SDK 3.0 Bootstrapping RFC

    • NCBC-1972: IConnection now has a single identity field

    Version 3.0.0-alpha3 (26th April 2019)

    Download | API Reference — N/A | Nuget

    Known Issues


    Fixed Issues

    • NCBC-1893: SDK 3.0 requires C# version 7.2 or greater

    • NCBC-1919: Full Text Search Conjunctive Query - .Boost Type Mismatch

    • NCBC-1941: Remove IntervalsVisibleTo ref for LoadTests project in Release mode

    New Features and Behavioral Changes

    • NCBC-1940: DotNet: Pathfind-author docs for SubDocument MutateIn

    • NCBC-1841: Compatibility for 3.0

    • NCBC-1867: Support pluggable logging w/default of MS

    • NCBC-1876: Improve Query error handling

    • NCBC-1862: Implement Binary operations

    • NCBC-1872: Port and integrate Analytics client

    • NCBC-1873: Port and integrate View client

    • NCBC-1874: Port and integrate Search client

    • NCBC-1875: Add Couchbase Connection string protocol support per RFC

    • NCBC-1881: LEB128 algorithm performs unnecessary heap allocations

    • NCBC-1882: Implement DefaultConverter Unit Tests In v3

    • NCBC-1884: Reduce Heap Allocations In DefaultConverter

    • NCBC-1885: Provide Span<T> based implementations on IByteConverter

    • NCBC-1886: Replace init of empty byte arrays with Array.Empty

    • NCBC-1887: Convert ReadExtras To Use ReadOnlySpan<T>

    • NCBC-1888: Update ITypeSerialize To Deserialize From Memory<byte>

    • NCBC-1889: Convert ITypeTranscoder.Decode To Use ReadOnlyMemory<byte>

    • NCBC-1890: Update OperationHeaderExtensions To Use ReadOnlySpan<byte>

    • NCBC-1894: Use Spans For Parsing SubDoc Operations

    • NCBC-1895: Use Spans For GetValue on Operations

    • NCBC-1896: Use Shared Memory Buffers For Operation Response Data

    • NCBC-1897: Use Shared Memory Buffers For Result Objects

    • NCBC-1898: SDK Load Test Framework

    • NCBC-1900: Use OperationBuilder For OperationBase.CreateExtras

    • NCBC-1901: Refactor ITypeTranscoder.Encode and ITypeSerializer.Serialize To Use Streams

    • NCBC-1902: Drop Deprecated IByteConverter.ToXXX byte array based overloads

    • NCBC-1903: Refactor IOperation.Write to IOperation.SendAsync

    • NCBC-1908: Create OperationBuilder for building K/V operations

    • NCBC-1909: Remove OperationBase.SendAsync Overrides For Non-SubDoc Operations

    • NCBC-1910: Remove OperationBase.SendAsync Overrides For SubDoc Operations

    • NCBC-1911: Use OperationBuilder For OperationBase.CreateKey

    • NCBC-1912: Use OperationBuilder For OperationBase.CreateFramingExtras

    • NCBC-1914: Use OperationBuilder For OperationBase.CreateBody

    • NCBC-1916: Enhance OperationBuilder For SubDoc Operations

    • NCBC-1918: Phase out ByteConverter.FromXXX byte array overloads

    • NCBC-1920: Create Operation Write Performance Tests

    • NCBC-1921: Optimize OperationBuilder.Write For MemoryPool On .Net Core 2.0 and Full Framework

    • NCBC-1922: Fix Load Test Rate Limiter Performance

    • NCBC-1923: Replace Enum.IsDefined in OperationBuilder.AdvanceToSegment

    • NCBC-1924: Create Load Tests For OperationBase.ReadAsync

    • NCBC-1925: Replace Enum.IsDefined In OperationHeaderExtensions.GetResponseStatus

    • NCBC-1928: Use Bit Shifting For NBO Swap Where Possible

    • NCBC-1929: Replace SemaphoreSlim In LoadTests RateLimiter

    • NCBC-1935: Address GC Interference In Operation Read Tests

    • NCBC-1936: Make Large Document Load Tests More Realistic

    • NCBC-1937: Use Shared ArrayPool To Support Serialization/Deserialization

    Version 3.0.0-alpha2 (20th March 2019)

    Download | NA[API Reference] | Nuget

    Known Issues


    Fixed Issues

    • NCBC-1878: NullException when using a collection-less server version

    New Features and Behavioral Changes


    Version 3.0.0-alpha (12th March 2019) DO NOT USE - USE 3.0.0-alpha2 or greater

    Download | NA[API Reference] | Nuget

    Known Issues

    This release has the following known issues: * NCBC-1878: NullException when using a collection-less server version

    Fixed Issues

    • NCBC-1851: Fix struct immutability issues when using options/actions

    • NCBC-1852: Use 'http' scheme for Query when 'couchbase://' scheme is used

    • NCBC-1854: Query does not throw execeptions, but returns them as a property and a status

    • NCBC-1855: Remove CouchbaseCollection2.cs

    • NCBC-1856: Default parameter value for 'options' must be a compile-time constant

    • NCBC-1858: LookupIn results in a Task canceled on every operation

    • NCBC-1865: Error CS0579: Duplicate attributes

    New Features and Behavioral Changes

    • NCBC-1789: Add .NET KV Collections Protocol Plumbing

    • NCBC-1790: Add new volatile Collections API to .NET

    • NCBC-1811: Add Basic CRUD for SDK 3.0

    • NCBC-1812: Add Basic Query for SDK 3.0

    • NCBC-1840: Add Synchronous Durability Operations

    • NCBC-1857: Migrate temp SDK 3.0 repo to

    • NCBC-1864: Update SDK 3.0 csproj Nuget information *[NCBC-1850]: Remove CouchbaseCollectionsTests.cs - used as a POC for interface design

    • NCBC-1833: Update Error Handling for SDK3

    • NCBC-1847: Move integration tests into Couchbase.IntergrationTests project

    • NCBC-1848: Remove all named parameters

    • NCBC-1849: Discussion: Make Options consistent - use either properties or methods

    • NCBC-1853: Make VBucket.VBucketIndex a short

    • NCBC-1859: Update Cluster creation / initialization

    • NCBC-1860: Fix Jenkins build scripts post v3 migration to gerrit/master

    • NCBC-1861: Don’t reference Couchbase.UnitTests in Release mode