1.2.0
As part of this release we had 537 commits which resulted in 92 issues being closed.
This release features a number of enhancements and bug fixes, including:
- Improved ForestDB Storage Engine (Developer Preview) - Our developer preview for the ForestDB storage engine saw a number of major code improvements under the hood.
- Improved database encryption - AES-256 on-disk encryption with your choice of provided storage library: SQLCipher or ForestDB
- CBL Incremental Store improvements - Your CoreData apps benefit from significant performance improvements and bug fixes.
The list goes on, including better P2P support, replication speed-ups, AppleTV compatibility, and more!
Performance Improvements
- #726 CBLListener.readOnly=YES prevents clients from storing checkpoints
- #733 Peer replication checkpoints are lost if its hostname or port changes
- #858 Attachment downloads should be resumeable
- #860 Ignore redundant attachment downloads
- #922 No auto-compact (db.forest getting very large)
- #926 Enable HTTP compression for _changes feed requests (non-continuous)
- #927 Compression for _changes feed requests (continuous)
- #938 CBLIS - Very poor performances from 5000 documents locally
- #960 CBLIS - Improve relationship cache invalidation
- #972 ForestDB-based view indexes don't auto-compact
- #991 Verify that ForestDB store's allDocs query is actually faster than SQLite store's allDocs
- #1046 CBLLiveQuery notification throttling too aggressive by default
Enhancements
- #73 Disallow leading "_" in attachment name (for compatibility)
- #79 Deferred attachment download
- #82 Add SSL client cert support to replicator
- #485 ForestDB: Reimplement geo-queries
- #652 Add CBLJSViewCompiler to the framework
- #702 Integrate new replicator
- #729 Allow validations to distinguish local from remote changes
- #806 Add "_conflicts" property to doc in map function when doc is in conflict
- #808 Expose totalRows from CBLView to developers
- #826 ForestDB: Implement database encryption
- #836 Allow adding/removing db encryption, or changing the key
- #858 Attachment downloads should be resumeable
- #859 Attachment downloads should be more fault tolerant
- #870 Migrating SQLite db to ForestDB
- #879 Need a purge method from CoreData with CBLIncrementalStore
- #918 Build for tvOS (AppleTV)
- #926 Enable HTTP compression for _changes feed requests (non-continuous)
- #927 Compression for _changes feed requests (continuous)
- #928 Add Carthage support
- #950 Update CouchbaseLiteViewer
- #960 CBLIS - Improve relationship cache invalidation
- #970 Add official openDatabase API for encryption/storage options
- #976 Package a SQLCipher binary with our storage engine
- #1029 Set custom user agent on HTTP Requests
- #1052 Optimize first-time sync
Bugs
- #648 CBLModel has trouble with dynamic properties in Swift classes
- #649 Attachment crash (CBL_BlobStoreWriter's initializer failed?)
- #671 "_removed" properties received from SG cause errors pushing to another server
- #681 Migrate v1.1.0 database file to cblite2 file structure
- #683 All-docs queries ignore prefixMatchLevel property
- #686 The bg replication server's database not getting closed
- #695 Revise replaceDatabase signature and backward db support
- #698 CBLReplicator could still be in the running status after closing the database
- #728 Checkpoint ID shared by distinct pull replications
- #733 Peer replication checkpoints are lost if its hostname or port changes
- #800 "Unexpected CBForest exception iterating query"
- #805 Crash after receiving 401 error from CBLReplication (ASSERTION FAILED: storage)
- #807 CBLReplication.pendingDocIDs doesn't update while replicator not running
- #838 Implement readOnly mode in CBLSyncListener
- #841 Assertion failure when using invalid username/password with replication
- #843 CBLDatabase not getting attachments from ancestry when processing attachments
- #857 Cannot get result using CBLQueryBuilder with NSSortDescriptor
- #877 Listener throws warnings even though there is no error
- #889 Query builder can't index on descending sort descriptors
- #892 Query.sortDescriptors doesn't gives expected result when '-limit' is applied.
- #893 Query.postFilter with limit gives limit+1 results.
- #895 Pusher doesn't send non-winning deletion replications (ForestDB)
- #899 WARNING: Unexpected CBForest exception iterating query
- #900 401 status from server not being propagated to CBLReplication.lastError
- #901 -[ListenerHTTP_Tests test03_ReadOnly] fails in iOS 9 simulator
- #903 Problem with relationship one-to-many when documents are created simultaneously on multiple devices
- #908 ForestDB queries wrong key range for descending=true and prefixMatch
- #909 New model objects created with +modelForDocument should set isNew flag to true
- #917 CBL returns NO with no error when attempting to encrypt an SQLite database
- #921 CBLQueryBuilder: Sorted property disappears from _valueTemplate (select)
- #922 No auto-compact (db.forest getting very large)
- #925 Crash in processing CBLIS changes when document has no type
- #938 CBLIS - Very poor performances from 5000 documents locally
- #942 CBLIS - Crash with relationships
- #958 CBLIS doesn't handle accesses from multiple dispatch queues
- #961 400 Invalid Attachment Warning / Error in Pull Replication
- #963 Couchbase lite eventually sends invalid heartbeat value for longpoll feed
- #964 WebSockets cannot be used with channel filtering for large amounts of channels
- #965 CBLModel -propertiesToSave does not nil check for _document == nil
- #973 LiteServ logs disconnect warnings
- #974 Liteserv throws exception when invoked with relative paths
- #979 AttachmentsPath of CBLManager replaceDatabaseNamed:... should be nullable
- #982 CBL can't handle _removed (some of the time) and tags it as illegal and kills the replicator
- #983 Full-text indexing fails for non-English-language users
- #986 "Invalid revpos" warnings and attachment errors during pull replication
- #987 ForestDB crashes with a fullTextQuery
- #999 Unsafe threading closing ForestDB view index in low-memory situation
- #1001 Attachment errors should not stop the replicator
- #1025 CBLDatabaseUpgrade selects wrong noAtts column
- #1039 The couchbase-lite-ios package doesn't contain tvOS binary
- #1040 CBL tvOS scheme absent for building tvOS package.
- #1041 DatabaseUpgrade not importing local docs
- #1046 CBLLiveQuery notification throttling too aggressive by default
- #1047 Adding Universal build of the 'releases/1.2' to Kitchen-Sync causes missing symbol during linking
- #1048 Couchbase lite iOS binary has enable_bitcode' flag disabled
- #1059 Workaround go multipart parser issue -- use different boundary?
- #1061 Bug on to-many relationships with Core Data context
- #1062 Liteserv binary doesn't use the ForestDB when specified via 'defaults' mac command
- #1063 Debug LiteServ build fails: missing symbol _CBLRegisterJSViewCompiler
- #1079 -[CBL_SQLiteStorage lowMemoryWarning]: unrecognized selector sent to instance
- #1081 [tvOS] Cannot create databases in default CBLManager
- #1082 Delete docs could cause missing undeleted docs in ForestDB view index
- #1083 App needs trigger(going back to home screen and realunch) to sync/pull docs
Where to get it
You can download this release from Couchbase.com