Releases: couchbase/couchbase-lite-net
1.4.0
For official release notes see this page.
As part of this release we had 144 commits which resulted in 44 issues being closed.
Enhancements
- #245 Implement LINQ IQueryable
- #575 Package Custom SQLite
- #709 Implement LiteServ on mobile platforms
- #741 Remove Mono.Security build
- #745 Support 'stale=false' queries in Listener
- #766 Push replication does not work when attachment content type is missing
- #797 Add DatabaseChangedEventArgs.IsDeletion to public API
- #802 Attempt to silence websockets when they shutdown
Bugs
- #672 .NET LiteServ is loading windows specific binaries on mac
- #710 SQL Exception caused by trying to query non-existent
maps_#
table - #713 QueryOptions skip and limit used incorrectly during reduce
- #718 V1.3 Continuous replication stops on change tracker error
- #719 Replication - Inconsistent Number of Documents After Replicating
- #724 V1.3 GetPendingDocumentIDs value is cached while offline for Push
- #725 Replication fails to authenticate with POST _replicate cookie.
- #727 BlobStoreWriter fails to delete encryption marker when removing encryption
- #731 Missing docs when pushing to multiple sync gateways
- #732 Transaction rollback does not invalidate cached doc ID map
- #735 SIGSEGV when closing a database while replication is still active
- #742 CB Lite on Android Xamarin fails to replicate when local DB is large
- #749 Attachments failed to replicate when deleted and recreated
- #753 SQLiteStorageEngine can return stale data in rare cases
- #755 Pull replication gets stuck in Active with more completed changes than pending changes
- #756 Pusher does not report "Forbidden" errors
- #757 Replicator should not assume LastSequence is an integer
- #765 Not all docs replicating with p2p .NET pull replication
- #767 Changes feed skipping changes on rapid long poll
- #772 ManagementException in GetWindowsName() of Platform.cs
- #773 BrowseService's Dispose crash fix not merged to Master?
- #776 Replication.Stop() doesn't release sockets
- #779 Attachments disappearing from docs when continuous pull is enabled
- #782 Encrypted attachments fail to push
- #785 NullReferenceException in Replication.GetStatusFromError
- #789 Investigate root cause of deletion not propagating to .NET client
- #795 Set ServicePointManager.SecurityProtocol
- #796 Headers not sent when pullReplication.Continuous = true
- #803 NullReferenceException in WebSocketChangeTracker
- #804 Attachment doesn't handle non-seekable streams gracefully
- #806 1.4 SQLite returns incorrect reason on REST API Get to purged doc
- #807 Handle closed web sockets by reconnecting
- #825 Pull replication doesn't restart with web sockets
- #826 .NET not sending all docs to a client pull replication (p2p, SSL)
Known Issues
Where to get it
You can download this release from Couchbase.com
1.3.1
As part of this release we had 48 commits which resulted in 4 issues being closed.
This is a maintenance release which includes hotfixes applied against 1.3.0.
Bugs
- #693 TestJSViews failing with ForestDB
- #716 V1.3 Unauthorized http state not reported on replicators LastError property
- #717 Unexpected replications returned from active tasks
- #723 POST _replicate fails which when "source" or "target" is a dictionary
Where to get it
You can download this release from Couchbase.com
1.3
As part of this release we had 330 commits which resulted in 68 issues being closed.
This is a feature release, with a focus on performance. Noteworthy changes:
- Support for OpenID Connect authentication, so you can log into Sync Gateway using a 3rd-party identity like a Google or Yahoo ID.
- Timed expiration of documents can help keep your database from growing indefinitely.
- Better performance with docs that have many revisions. Replication is faster, and older revisions are now automatically cleaned up in SQLite storage.
- Clearer error messages and better logging, including customizable domains and app.config support
- And of course many smaller optimizations, and lots of bug fixes.
Enhancements
- #50 Add WebSocket support to replication
- #558 Missing PrefixMatchLevel under query
- #570 Implement Database.Close()
- #574 Remove requirement to define SQLCIPHER
- #582 Stop using long poll limit
- #595 Support POST /_changes in listener
- #596 Package 32-bit CBForest-Interop.dll
- #599 Allow users to specify the format they want dates to be deserialized as
- #606 Implement remote logging interface
- #613 Make View.UpdateIndex() public
- #615 Hook up GET _active_tasks
- #617 TTL support
- #634 No way to remove a database.
- #635 Add support for HTTP 408 status
- #639 Provide build of ListenerConsole in latestbuilds with each nuget package set.
- #648 Major inefficiencies replicating docs with many revisions
- #650 Investigate ability to more quickly start a stopping replication
- #652 OpenID connect mechanism
- #653 REST API for TTL
- #678 Implement GET design doc
- #685 Add API for clearing OpenID auth token
- #686 OpenID tokens in the key store should be per-database
Bugs
- #557 SimpleAndroidSync freezing when adding items offline
- #573 Implement query filter on ForestDB views
- #580 Prevent nuget from using incompatible Stateless versions
- #583 System.BadImageFormatException when calling manager.GetDatabase("dbname") method
- #590 Listener crashes when receiving improper messages
- #591 Warn if map function calls emit(null, ...)
- #608 Listener intermittently enters hanging state
- #609 After purging a doc, live queries are not informed of the view change
- #610 Docs in SQLite dbs never get pruned until entire db is compacted
- #611 Stop() should not wait for changes to finish
- #612 When examining an exception, all nested exceptions should be examined
- #616 ExecSQL timeout prevents successful query of a very large db
- #623 Pushing ending prematurely
- #625 Xamarin Android crash due to hitting max application memory while syncing large attachments
- #627 Revpos == 0 needs to be treated as valid
- #628 Fallback to GET when POST is not allowed to _changes
- #631 Duplicate rows emitted during UpdateIndex
- #636 Starting a replication that already exists causes NRE
- #637 IOS device build error in 1.2.1.1
- #640 Docs taking a really long time to replicate
- #641 401 Unauthorized during replication
- #643 Manager constructor fails on Windows 10
- #644 Heartbeat not behaving correctly with Listener (not honoring user setting)
- #654 Change tracker paused not working
- #655 Web socket change tracker doesn't use auth
- #656 Delete replications not following the same behavior as the native iOS library
- #657 Documents with null _attachments property cause NullReferenceException
- #659 Document.Update enters infinite loop
- #660 Setting log configuration via app.config is throwing exception
- #661 Removed attachments reported by UnsavedRevision
- #666 Unsaved attachment ContentType property throws NullReferenceException
- #667 WebSocketChangeTracker does not support using cookies for authentication
- #669 POST _replicate on the listen does not returns null "session_id"
- #673 Incorrect processing in REST API of documents with null bodies
- #674 Needless exception thrown and caught when dynamic DLL is loaded
- #675 Incorrect class type causing issues with REST all documents query
- #676 Rare continuous changes feed issue over SSL
- #679 Functional test failure on auto pruning
- #683 Fail to GET encrypted raw attachment
- #687 Pusher not properly setting headers on HTTP requests
- #688 Null reference exception during functional auto prune test
- #694 Xamarin Android SIGSEGV on unit test
- #698 NullReferenceException in SendAsyncRequest
- #705 Replication unable to recover from remote checkpoint conflict
Known Issues
- #693 TestJSViews failing with ForestDB
Where to get it
You can download this release from Couchbase.com
1.3-pre1
Note: Nuget.org mistakenly points here for the 1.3 release, but the actual notes are here
As part of this release we had 279 commits which resulted in 59 issues being closed.
This is a feature release, with a focus on performance. Noteworthy changes:
- Support for OpenID Connect authentication, so you can log into Sync Gateway using a 3rd-party identity like a Google or Yahoo ID.
- Timed expiration of documents can help keep your database from growing indefinitely.
- Better performance with docs that have many revisions. Replication is faster, and older revisions are now automatically cleaned up in SQLite storage.
- Clearer error messages and better logging, including customizable domains and app.config support
- And of course many smaller optimizations, and lots of bug fixes.
Enhancements
- #50 Add WebSocket support to replication
- #558 Missing PrefixMatchLevel under query
- #570 Implement Database.Close()
- #574 Remove requirement to define SQLCIPHER
- #582 Stop using long poll limit
- #595 Support POST /_changes in listener
- #596 Package 32-bit CBForest-Interop.dll
- #599 Allow users to specify the format they want dates to be deserialized as
- #606 Implement remote logging interface
- #613 Make View.UpdateIndex() public
- #615 Hook up GET _active_tasks
- #617 TTL support
- #634 No way to remove a database.
- #635 Add support for HTTP 408 status
- #639 Provide build of ListenerConsole in latestbuilds with each nuget package set.
- #648 Major inefficiencies replicating docs with many revisions
- #650 Investigate ability to more quickly start a stopping replication
- #652 OpenID connect mechanism
- #653 REST API for TTL
- #678 Implement GET design doc
Bugs
- #557 SimpleAndroidSync freezing when adding items offline
- #573 Implement query filter on ForestDB views
- #580 Prevent nuget from using incompatible Stateless versions
- #583 System.BadImageFormatException when calling manager.GetDatabase("dbname") method
- #590 Listener crashes when receiving improper messages
- #591 Warn if map function calls emit(null, ...)
- #608 Listener intermittently enters hanging state
- #609 After purging a doc, live queries are not informed of the view change
- #610 Docs in SQLite dbs never get pruned until entire db is compacted
- #611 Stop() should not wait for changes to finish
- #612 When examining an exception, all nested exceptions should be examined
- #616 ExecSQL timeout prevents successful query of a very large db
- #623 Pushing ending prematurely
- #627 Revpos == 0 needs to be treated as valid
- #628 Fallback to GET when POST is not allowed to _changes
- #631 Duplicate rows emitted during UpdateIndex
- #636 Starting a replication that already exists causes NRE
- #637 IOS device build error in 1.2.1.1
- #641 401 Unauthorized during replication
- #643 Manager constructor fails on Windows 10
- #644 Heartbeat not behaving correctly with Listener (not honoring user setting)
- #654 Change tracker paused not working
- #655 Web socket change tracker doesn't use auth
- #656 Delete replications not following the same behavior as the native iOS library
- #657 Documents with null _attachments property cause NullReferenceException
- #659 Document.Update enters infinite loop
- #660 Setting log configuration via app.config is throwing exception
- #661 Removed attachments reported by UnsavedRevision
- #666 Unsaved attachment ContentType property throws NullReferenceException
- #667 WebSocketChangeTracker does not support using cookies for authentication
- #669 POST _replicate on the listen does not returns null "session_id"
- #673 Incorrect processing in REST API of documents with null bodies
- #674 Needless exception thrown and caught when dynamic DLL is loaded
- #675 Incorrect class type causing issues with REST all documents query
- #676 Rare continuous changes feed issue over SSL
- #679 Functional test failure on auto pruning
##Known issues to be solved before official release
- #640 Docs take a really long time to replicate
- #683 Fail to GET Encrypted raw attachment
- #685 Add API for clearing OpenID auth token
- OpenID Connect token storage not complete for Android API 18 - 22
##Where to get it
You can download this release from Couchbase's nightly-builds server until I get a package onto Nuget.org.
1.2.1
As part of this release we had 173 commits which resulted in 11 issues being closed.
This is a maintenance release which includes hotfixes applied against 1.2.0.
Enhancements
Bugs
- #589 DocumentChange.IsConflict is always false for pulled revisions
- #593 _replicate endpoint hangs
- #601 Incorrect _local 404 detection in P2P scenario
- #602 Pusher does not reset to 0 when its sequence does not agree with remote checkpoint
- #607 IOException when upgrading from 1.1.2 -> 1.2.0.3
- #618 TestJSViews fails with the CBForest per thread connection model
- #619 Race condition exists between LiveQuery and View
- #620 MultiStreamWriter AllOutput causes timeout on Android
- #622 Uncaught exception in
Manager.OpenDatabase
causes crash
Where to get it
You can download this release from Couchbase.com
1.2
As part of this release we had 323 commits which resulted in 47 issues being closed.
This release features a number of performance improvements, enhancements, and bug fixes, including:
- Encryption Support - Databases may now be encrypted. The encryption process uses industry standard protocols (PBKDF2 for key generation and 256-bit AES for encrypting).
- ForestDB Storage Engine (Developer Preview) - You may now take advantage of the performance increases of Couchbase's new ForestDB storage library. It was designed from the ground up to be a key-value storage engine and lends itself perfectly to our JSON model.
- Improved Performance - Sync protocol enhancements, compression support, and lower memory usage are just a few of the many performance improvements we've included.
Important Upgrade Notice
_YOU MUST REMOVE SQLITEPCL.UGLY AND SQLITEPCL.RAW PACKAGES FROM YOUR PROJECT IF YOU ARE UPGRADING FROM AN EARLIER VERSION OF COUCHBASE LITE_
Packaging Changes
Starting with this release the nuget package has been modularized. Making use of these two new features requires installing additional packages from nuget. By default, Couchbase.Lite will use Couchbase.Lite.Storage.SystemSQLite which makes use of the system-installed SQLite library (or a provided one for Windows). To use encryption with SQLite, you must install the Couchbase.Lite.Storage.SQLCipher package. To use ForestDB (with or without encryption) you must install the Couchbase.Lite.Storage.ForestDB package.
Enhancements
- #378 Refactor to pluggable storage engine
- #391 ForestDB Storage Engine
- #400 Support HTTP request / response compression
- #408 Implement PCLSqlite SQLCipher Support
- #410 Add GZip support for attachment compression
- #430 Handle UpdateIndex() in an efficient thread-safe manner
- #458 Add "_conflicts" property to doc in map function when doc is in conflict
- #465 Expose CBLView.totalRows to public
- #466 Add BySequence to AllDocsOptions
- #473 Support for CBLReplication.pendingDocumentIds
- #479 Database not getting attachments from ancestry when processing attachments
- #484 Add support for SQLCipher
- #493 Attachment blob file name is not uppercase
- #497 Encrypt file attachments
- #516 ForestDB encryption support
- #522 Implement JS filter compiler
- #524 Add official openDatabase API for encryption/storage options
- #525 Confirm include_doc_seq usage
- #538 Replicator shouldn't fetch remote checkpoint if no local checkpoint
- #541 Implement view grouping
- #544 Set custom user agent on HTTP requests
- #546 Don't process 'removed' changes feed entries
- #552 Optimize first-time sync
Bugs
- #426 POST: db/_revs_diff returns 417 instead of 100
- #469 Replicators should have independent cookie storage
- #470 Add replicator support for remote dbs with varying URLs
- #478 Issue in accessing docs in Parallel for each loop
- #486 Replication deadlocking on Linux
- #489 Unable to replicate using Facebook authenticator
- #490 Views lost after complete recreation of database
- #496 Dates should stringify with 8601 format
- #505 [Unity] createAllDocumentsQuery().toLiveQuery() Throws Exception
- #517 Error when non-contineous sync ends.
- #527 Filter out _removed revision from push replication
- #531 Replication freeze when _change feed contains a doc which is no longer in _all_docs feed. "Tag: Replication Message: Got error NotFound"
- #537 When replace database, last seq for replication should be imported
- #542 Replicators cannot be restarted
- #545 Escape view names in ForestDB view store
- #547 TypeInitializationException during CouchbaseSample.iOS launch
- #550 LiveQuery notification throttling too aggressive by default
- #553 SimpleAndroidSync crashes when "Cleaning" entries from iOS
- #554 Ensure that the database upgrade preserves local documents
- #565 IOS sample app doesn't show any results with ForestDB
- #566 TestRemoteConflictResolution failing
- #569 SetValidation causes always failing revisions when set to null (i.e. "removing")
Known Issues
Where to get it
You can download this release from Couchbase.com
1.1.2
Due to a bug in the Xamarin Studio nuget add-in, adding Couchbase Lite 1.1.1 to a .NET 4.5 does not automatically add the packages it depends on. Due to this issue, we are removing our .NET 3.5 package until the Xamarin Studio add-in issue is resolved.
This release also includes one critical fix, which can occur when first opening a database created in Couchbase Lite 1.0.4. All 1.1.1 users are strongly recommended to upgrade to 1.1.2 immediately to avoid data loss.
Critical Issues
- #512 Upgrade logic to v1.1 sometimes deletes database file on failure
Known Issues
- #486 Replication deadlocking on Linux
- #481 [Unity Demo] _bulk_get deadlocks on Unity.iOS
- #504 Bonjour P2P services sometimes have trouble unregistering (especially on Linux / Android)
You can download this release from nuget.org:
Requirements
Couchbase Lite for .NET 1.1.2 is compatible with the following .NET runtimes and operating systems:
.NET Runtime | OS |
---|---|
Mono (.NET 3.5+) | Linux |
Mono (.NET 3.5+) | OS/X |
MSFT 3.5+ | Windows Desktop |
Xamarin | iOS |
Xamarin | Android |
Unity 4.6 Pro | Android |
Unity 4.6 Free/Pro | Windows Desktop |
Unity 4.6 Free/Pro | OS X |
Unity 4.6 Free/Pro | Linux |
Unity >= 5.1.2p1 Personal/Pro | iOS |
Unity 5 Personal/Pro | Android |
Unity 5 Personal/Pro | Windows Desktop |
Unity 5 Personal/Pro | OS X |
Unity 5 Personal/Pro | Linux |
1.1.1
Hello Couchbase Lite users! This release is a maintenance release that fixes a good number of bugs as well as enhancing the way that certain parts of Couchbase Lite work. As part of this release we had 170 commits which resulted in 21 issues being closed. I have done an enormous amount of refactoring in order to tighten up the screws and get things running more smoothly! Keep watching this page, as well, because 1.2 is not going to be far off, and it has some monumental features planned!
Enhancements
- #462 Migrate to incremental JSON parsing
- #432 [Listener] Implement HTTP Basic authentication (Note: Digest auth will be held back until 1.2)
- #383 LiveQuery should re-run query from scratch after options are changed
Bugs
- #500 iOS can't handle concurrent pullers
- #487 No valid leaving transitions are permitted from state 'Initial' for trigger 'StopGraceful'
- #485 Managed heap corruption on Windows
- #477 Replicate attachment with IChallengeResponseAuthenticator
- #464 _local logic handler doesn't handle error responses correctly
- #463 Manager allows identical replicators to run simultaneously
- #457 Two LiveQueries over one view cause duplication of new rows
- #455 Pull Replication with DocIds is returning all documents
- #449 Replication Push is failing when attachments are involved
- #447 Array order is ignored on QueryEnumerator and IDictionary<string,object>
- #442 Error on attachments with digest as MD5
- #438 Replication.CompletedChangesCount is always 0
- #435 System.UnauthorizedAccessException while sending a Get request on ip:port/db_name and some other Peer to Peer Sync Issues
- #431 [Listener] Internal server error when doing a GET with attachments
- #418 Exception when calling GetDatabase()
- #407 Retrieving attachment Stream fails on UnsavedRevision
- #398 Setting FilterParams results in an unhanded exception
- #384 PullReplication: new revision makes attachment disappear
- #356 BulkDownloader HTTP request timeouts not properly handled
Known Issues
- #486 Replication deadlocking on Linux
- #481 [Unity Demo] _bulk_get deadlocks on Unity.iOS
- (No ticket) Bonjour P2P services sometimes have trouble unregistering (especially on Linux / Android).
You can download this release from nuget.org:
Requirements
Couchbase Lite for .NET 1.1.1 is compatible with the following .NET runtimes and operating systems:
.NET Runtime | OS |
---|---|
Mono (.NET 3.5+) | Linux |
Mono (.NET 3.5+) | OS/X |
MSFT 3.5+ | Windows Desktop |
Xamarin | iOS |
Xamarin | Android |
Unity 4.6 Pro | Android |
Unity 4.6 Free/Pro | Windows Desktop |
Unity 4.6 Free/Pro | OS X |
Unity 4.6 Free/Pro | Linux |
Unity >= 5.1.2p1 Personal/Pro | iOS |
Unity 5 Personal/Pro | Android |
Unity 5 Personal/Pro | Windows Desktop |
Unity 5 Personal/Pro | OS X |
Unity 5 Personal/Pro | Linux |
Couchbase Lite for Unity3D - Beta 3
This is a quick beta to include all of the REST API and Bonjour stuff that didn't make it into Beta 2. It is split into three parts:
Core - this is needed no matter what
Listener - Adds REST API and HTTP server functionality
Bonjour - Adds Multicast DNS functionality
I've added a README file inside each package, as well as checksums. It's very easy to put the wrong file in the wrong place since many of them have the same name (per-platform).
Couchbase Lite for Unity3D - Beta 2
Significant improvements across the board. The GA is near, but there is one known issue to sort out before that will be possible:
Issue #428 is currently under investigation. The problem in the ticket itself has been resolved, but the project generated by IL2CPP gives an internal error in the Unity runtime. We hope to have this sorted out soon, and we are working with Unity on the issue.