By: Calvin Metcalf
Published: 12 August 2014
PouchDB 3.0.0 is finally released! It's faster, it's more stable, it's easier to debug, it doesn't freeze the DOM and it spontaneously generates kittens.
Please file issues or tell us what you think. We would also like to give a huge thanks to our new and existing contributors.
This release includes a migration. Your existing database will be updated automatically, but you cannot downgrade to a previous version of PouchDB once you've upgraded.
Breaking Changes:
- The browser build
pouchdb-nightly.js
has been renamed topouchdb.js
. It was never really a nightly anyway. (#2146) opts.server
has been deprecated from thereplicate()
andsync()
APIs. You can still replicate from one HTTP server to another, but the data will flow through PouchDB rather than being server-initiated. (#2313)- You can no longer rely on errors to have an identifying name. Instead, rely on CouchDB-centric errors to have a status (i.e.
err.status
instead oferr.name
). There are some that still have an identifying name, but these could be removed at any time. The upside of this is that stack traces should be more consistently helpful. (#2545)
Major Changes:
- Constructor option
opts.size
to work around Safari/iOS storage quotas (#2347) PouchDB.defaults()
for default constructor options, which permits many new features in pouchdb-server. (#2054)-
_local
documents are now unversioned in the underlying backend for better map/reduce performance and to better align theupdate_seq
with CouchDB (#2023). Also fixes an issue with replication andchanges()
. (#2342) - Performance improvements. (#2391, #2392, #2393)
- MD5 hashes are now calculated incrementally in a way that won't freeze the DOM. (#445, #2497)
- More efficient replication. (#2466, #2475)
Bugfixes:
- Fix for replication of multiple attachments. (#2358)
- Fix for
bulkDocs()
in Cloudant. (#2365) - Fix read-only replication for CORS/40*. (#2484)
- Fix for reserved words in docs. (#2477)
- Fixes for
change
events in.sync()
. (#2555) - Fixes for race condition in bulk docs with
new_edits=false
in LevelDB. (#2574) - Fixes for
opts.stale
inquery()
. (pouchdb/mapreduce#196, pouchdb/mapreduce#198)