Skip to content

Latest commit

 

History

History
397 lines (279 loc) · 30.6 KB

changelog.md

File metadata and controls

397 lines (279 loc) · 30.6 KB

Preview features are treated as a separate branch and will not be included in the official release until the feature is ready. Each preview release lists all the additional features that are enabled.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

3.11.0 - 2020-07-07

Added

  • #1587 & 1643 & 1667 Diagnostics: Add synchronization context tracing to all request
  • #1617 Performance: Fix OM hierarchy to use strings for relative paths instead of URI
  • #1639 CosmosClient: Add argument check for empty key to prevent ambiguous 401 not authorized exception
  • #1640 Bulk: Add TimerWheel to Bulk to improve latency
  • #1678 Autoscale: Add to container builder

Fixed

  • #1638 Documentation : Fix all examples to add using statement to FeedIterator
  • #1666 CosmosOperationCanceledException: Fix handler to catch all operation cancelled exceptions
  • #1682 Performance: Fix high CPU consumption caused by EnableTcpConnectionEndpointRediscovery

3.10.1 - 2020-06-18

  • #1637 TransportHandler : Removed stack trace print. Introduced in 3.10.0 PR 1587

3.10.0 - 2020-06-18

Added

  • #1613 Query FeedIterator: Add IDisposable to fix memory leak. WARNING: This will require changes to fix static anlysis tools checking for dispose.
  • #1550 CosmosOperationCanceledException: This enables users to access the diagnsotics when an operation is canceled via the cancellation token. The new type extends OperationCanceledException so it does not break current exception handling and includes the CosmosDiagnostic in the ToString().
  • #1578 Query: Add memory optimization to prevent coping the buffer
  • #1578 Query: Add support for ignore case for Contains and StartsWith functions.
  • #1602 Diagnostics: Add CPU usage to all operations
  • #1603 Documentation: Add new exception handling documentation

Fixed

  • #1530 ContainerDefinition : Fix WithDefaultTimeToLive argument spelling (Thanks to tony-xia)
  • #1547 & #1582 Query and Readfeed: Fix exceptions caused by not properly handling splits
  • #1578 ApplicationRegion: Fix ApplicationRegion to ensure the correct order is being used for failover scenarios
  • #1585 Query : Fix Multi- ORDER BY continuation token support with QueryExecutionInfo response headers

3.9.1 - 2020-05-19

3.9.1-preview - 2020-05-19

Fixed

  • #1539 CosmosException and Diagnostics: Fix ToString() to not grow exponentially with retries. Introduced in 3.7.0 in PR #1189.

3.9.0 - 2020-05-18

Added

  • #1356 & #1407 & #1428 & #1407 Autoscale: Add support
  • #1398 Diagnostics: Add CPU monitoring for .Net Core
  • #1441 Transport: Add HttpClientFactory support on CosmosClientOptions
  • #1457 Container: Add Database reference to the container
  • #1455 Serializer: Add SDK serializer to Client.ClientOptions.Serializer
  • #1397 CosmosClientBuilder: Add preferred regions and WithConnectionModeDirect()
  • #1439 No content on Response: Add the ability to have operation return no content from Cosmos DB.
  • #1398 & #1516 Read feed and change feed: Add serialization optimization to reduce memory and cpu utlization upto 90%. Object are now passed as an array to the serializer.
  • #1516 Query: Add serialization optimization to reduce memory upto %50 and cpu utlization upto 25%. Object are now passed as an array to the serializer.

Fixed

  • #1401 & #1437: Response type: Fix deadlock on scenarios with SynchronizationContext when using Response.Container
  • #1445 Transport: Fix ServicePoint for WebAssembly
  • #1462 UserAgent: Fix feature usage tracking
  • #1469 Diagnostics: Fix InvalidOperationException and converts elapsed time to millisecond
  • #1512 PartitionRoutingHelper: Fix ReadFeed ArgumentNullException due to container cache miss
  • #1530 CosmosClientBuilder: Fix WithDefaultTimeToLive parameter spelling

3.9.0-preview3 - 2020-05-11

Added

  • #1356 & #1407 & #1428 Autoscale Preview: Add to public preview release
  • #1407 Autoscale: Add CreateDatabaseIfNotExistsAsync and CreateContainerIfNotExistsAsync
  • #1410 FeedRange: Add Json serialization support
  • #1398 Diagnostics: Add CPU monitoring for .Net Core
  • #1441 Transport: Add HttpClientFactory support on CosmosClientOptions
  • #1457 Container: Add Database reference to the container
  • #1453 Response Factory: Add a response factory to the public API
  • #1455 Serializer: Add SDK serializer to Client.ClientOptions.Serializer
  • #1397 CosmosClientBuilder: Add preferred regions and public internal func WithConnectionModeDirect()
  • #1439 No content on Response: Add the ability to have operation return no content from Cosmos DB
  • #1469 Diagnostics: Fix InvalidOperationException and converts elapsed time to millisecond

Fixed

  • #1398 Reduced memory allocations on query deserialization.
  • #1401 & #1437: Response type: Fix deadlock on scenarios with SynchronizationContext when using Response.Container
  • #1445 Transport: Fix ServicePoint for WebAssembly
  • #1462 UserAgent: Fix feature usage tracking

3.9.0-preview - 2020-04-17

Added

  • #1356 Autoscale Preview: Add to public preview release

3.8.0-preview - 2020-04-16

Added

  • #1331 Enable client encryption / decryption for transactional batch requests

Fixed

  • #1369 Fix decryption for 'order by' query results

3.8.0 - 2020-04-07

Added

  • #1314 Added configuration for proactive TCP end-of-connection detection
  • #1305 Added support for preferred region customization

Fixed

  • #1312 Fixed null reference when using default(PartitionKey)
  • #1296 Decrypt the encrypted properties before returning query result
  • #1345 Fixed get query plan diagnostics

3.7.1-preview - 2020-03-30

  • #1210 Change Feed pull model
  • #1242 Client encryption - Fix bug in read path without encrypted properties
  • #1314 Added configuration for proactive TCP end-of-connection detection
  • #1312 Fixed null reference when using default(PartitionKey)
  • #1296 Decrypt the encrypted properties before returning query result

3.7.0 - 2020-03-26

Added

  • #1268 Add GetElapsedClientLatency to CosmosDiagnostics
  • #1239 Made MultiPolygon and PolygonCoordinates classes public.
  • #1233 PartitionKey now supports operators ==, != for equality comparison.
  • #1285 Add query plan retrevial to diagnostics
  • #1289 Query ORDER BY Resume Optimization
  • #1074 Bulk API congestion control

Fixed

  • #1213 CosmosException now returns the original stack trace.
  • #1213 ResponseMessage.ErrorMessage is now always correctly populated. There was bug in some scenarios where the error message was left in the content stream.
  • #1298 CosmosException.Message contains the same information as CosmosException.ToString() to ensure all the information is being tracked
  • #1242 Client encryption - Fix bug in read path without encrypted properties
  • #1189 Query diagnostics shows correct overall time.
  • #1189 Fixed a bug that caused duplicate information in diagnostic context.
  • #1263 Fix a bug where retry after internval did not get set on query stream responses
  • #1198 Fixes null reference exception when calling a disposed CosmosClient
  • #1274 ObjectDisposedException is thrown when calling all SDK objects like Database and Container that reference a disposed client
  • #1268 Fix bug where Request Options was getting lost for Database.ReadStreamAsync and Database.DeleteStreamAsync
  • #1304 Fixed XML documentation so it now is visible in Visual Studio

3.7.0-preview2 - 2020-03-09

  • #1210 Change Feed pull model
  • #1242 Client encryption - Fix bug in read path without encrypted properties

3.7.0-preview - 2020-02-25

  • #1074 Bulk API congestion control
  • #1210 Change Feed pull model

3.6.0 - 2020-01-23

  • #1105 CosmosClient Immutability + Disposable Fixes

Added

  • #1097 Add GeospatialConfig to ContainerProperties, BoundingBoxProperties to SpatialPath
  • #1061 Add Stream payload to ExecuteStoredProcedureStreamAsync
  • #1062 Add additional diagnostic information including the ability to track time through the different SDK layers
  • #1107 Add Source Link support
  • #1121 StandByFeedIterator breath-first read strategy

Fixed

  • #1105 Custom serializer no longer calls SDK owned types that would cause serialization exceptions
  • #1112 Fixed SDK properties like DatabaseProperties to have same JSON attributes
  • #1116 Fixed a deadlock on scenarios with SynchronizationContext while executing async query operations
  • #1143 Fixed permission resource link and authorization issue when doing a query with resource token for a specific partition key
  • #1150 Fixed NullReferenceException when using a non-existent Lease Container.

3.5.1 - 2019-12-11

Fixed

  • #1060 Fixed unicode encoding bug in DISTINCT queries.
  • #1070 CreateItem will only retry for auto-extracted partition key in-case of collection re-creation
  • #1075 Including header size details for BadRequest with large headers
  • #1078 Fixed a deadlock on scenarios with SynchronizationContext while executing async SDK API
  • #1081 Fixed race condition in serializer caused null reference exception.
  • #1086 Fix possible NullReferenceException on a TransactionalBatch code path
  • #1091 Fixed a bug in query when a partition split occurs that causes a NotImplementedException to be thrown.
  • #1089 Fixes a NullReferenceException when using Bulk with items with no PK

3.5.0 - 2019-12-03

Added

  • #979 Make SessionToken on QueryRequestOptions public.
  • #995 Included session token in diagnostics.
  • #1000 Add PortReuseMode to CosmosClientOptions.
  • #1017 Adding ClientSideRequestStatistics to gateway calls and making endtime nullable
  • #1038 Add Selflink to resource properties

Fixed

  • #921 Fixed error handling to preserve stack trace in certain scenarios
  • #944 Change Feed Processor won't use user serializer for internal operations
  • #988 Fixed query mutating due to retry of gone / name cache is stale.
  • #954 Support "Start from Beginning" for Change Feed Processor in multi master accounts
  • #999 Fixed grabbing extra page, updated continuation token on exception path, and non ascii character in order by continuation token.
  • #1013 Gateway OperationCanceledException are now returned as request timeouts
  • #1020 Direct package update removes debug statements
  • #1023 Fixed ThroughputResponse.IsReplacePending header mapping
  • #1036 Fixed query responses to return null Content if it is a failure
  • #1045 Added stack trace and innner exception to CosmosException
  • #1050 Add mocking constructors to TransactionalBatchOperationResult

3.4.1 - 2019-11-06

Fixed

  • #978 Fixed mocking for FeedIterator and Response classes

3.4.0 - 2019-11-04

Added

  • #853 ORDER BY Arrays and Object support.
  • #877 Query diagnostics now contains client side request diagnostics information
  • #923 Bulk Support is now public
  • #922 Included information of bulk support usage in user agent
  • #934 Preserved the ordering of projections in a GROUP BY query.
  • #952 ORDER BY Undefined and Mixed Type ORDER BY support
  • #965 Batch API is now public

Fixed

  • #901 Fixed a bug causing query response to create a new stream for each content call
  • #918 Fixed serializer being used for Scripts, Permissions, and Conflict related iterators
  • #936 Fixed bulk requests with large resources to have natural exception

3.3.3 - 2019-10-30

  • #837 Fixed group by bug for non-Windows platforms
  • #927 Fixed query returning partial results instead of error

3.3.2 - 2019-10-16

Fixed

  • #905 Fixed linq camel case bug

3.3.1 - 2019-10-11

Fixed

  • #895 Fixed user agent bug that caused format exceptions on non-Windows platforms

3.3.0 - 2019-10-09

Added

  • #801 Enabled LINQ ThenBy operator after OrderBy
  • #814 Ability to limit to configured endpoint only
  • #822 GROUP BY query support.
  • #844 Added PartitionKeyDefinitionVersion to container builder

Fixed

  • #835 Fixed a bug that caused sortedRanges exceptions
  • #846 Statistics not getting populated correctly on CosmosException.
  • #857 Fixed reusability of the Bulk support across Container instances
  • #860 Fixed base user agent string
  • #876 Default connection timeout reduced from 60s to 10s

3.2.0 - 2019-09-17

Added

  • #100 Configurable Tcp settings to CosmosClientOptions
  • #615, #775 Added request diagnostics to Response's
  • #622 Added CRUD and query operations for Users and Permissions which enables ResourceToken support
  • #716 Added camel case serialization on LINQ query generation
  • #729, #776 Added aggregate(CountAsync/SumAsync etc.) extensions for LINQ query
  • #743 Added WebProxy to CosmosClientOptions

Fixed

  • #726 Query iterator HasMoreResults now returns false if an exception is hit
  • #705 User agent suffix gets truncated
  • #753 Reason was not being propagated for Conflict exceptions
  • #756 Change Feed Processor with WithStartTime would execute the delegate the first time with no items.
  • #761 CosmosClient deadlocks when using a custom Task Scheduler like Orleans (Thanks to jkonecki)
  • #769 Session Consistency + Gateway mode session-token bug fix: Under few rare non-success cases session token might be in-correct
  • #772 Fixed Throughput throwing when custom serializer used or offer doesn't exists
  • #785 Incorrect key to throw CosmosExceptions with HttpStatusCode.Unauthorized status code

3.2.0-preview2 - 2019-09-10

  • #585, #741 Bulk execution support
  • #427 Transactional batch support (Item CRUD)

3.2.0-preview - 2019-08-09

  • #427 Transactional batch support (Item CRUD)

3.1.1 - 2019-08-12

Added

  • #650 CosmosSerializerOptions to customize serialization

Fixed

  • #612 Bug fix for ReadFeed with partition-key
  • #614 Fixed SpatialPath serialization and compatibility with older index versions
  • #619 Fixed PInvokeStackImbalance exception for .NET Framework
  • #626 FeedResponse status code now return OK for success instead of the invalid status code 0 or Accepted
  • #629 Fixed CreateContainerIfNotExistsAsync validation to limited to partitionKeyPath only
  • #630 Fixed User Agent to contain environment and package information

Added

  • #541 Added consistency level to client and query options
  • #544 Added continuation token support for LINQ
  • #557 Added trigger options to item request options
  • #572 Added partition key validation on CreateContainerIfNotExistsAsync
  • #581 Added LINQ to QueryDefinition API
  • #592 Added CreateIfNotExistsAsync to container builder
  • #597 Added continuation token property to ResponseMessage
  • #604 Added LINQ ToStreamIterator extension method

Fixed

  • #548 Fixed mis-typed message in CosmosException.ToString();
  • #558 LocationCache ConcurrentDict lock contention fix
  • #561 GetItemLinqQueryable now works with null query
  • #567 Query correctly handles different language cultures
  • #574 Fixed empty error message if query parsing fails from unexpected exception
  • #576 Query correctly serializes the input into a stream

3.0.0 - 2019-07-15

  • General availability of Version 3.0.0 of the .NET SDK
  • Targets .NET Standard 2.0, which supports .NET framework 4.6.1+ and .NET Core 2.0+
  • New object model, with top-level CosmosClient and methods split across relevant Database and Container classes
  • New highly performant stream APIs
  • Built-in support for Change Feed processor APIs
  • Fluent builder APIs for CosmosClient, Container, and Change Feed processor
  • Idiomatic throughput management APIs
  • Granular RequestOptions and ResponseTypes for database, container, item, query and throughput requests
  • Ability to scale non-partitioned containers
  • Extensible and customizable serializer
  • Extensible request pipeline with support for custom handlers

Release & Retirement dates

Microsoft provides notification at least 12 months in advance of retiring an SDK in order to smooth the transition to a newer/supported version.

New features and functionality and optimizations are only added to the current SDK, as such it is recommended that you always upgrade to the latest SDK version as early as possible.

Any requests to Azure Cosmos DB using a retired SDK are rejected by the service.


Version Release Date Retirement Date
3.6.0 January 23, 2020 ---
3.5.1 December 11, 2019 ---
3.5.0 December 03, 2019 ---
3.4.1 November 06, 2019 ---
3.4.0 November 04, 2019 ---
3.3.3 October 30, 2019 ---
3.3.2 October 16, 2019 ---
3.3.1 October 11, 2019 ---
3.3.0 October 8, 2019 ---
3.2.0 September 18, 2019 ---
3.1.1 August 12, 2019 ---
3.1.0 July 29, 2019 ---
3.0.0 July 15, 2019 ---