Skip to content

Releases: pouchdb/pouchdb

3.0.6

23 Sep 01:51
Compare
Choose a tag to compare

As Cupertino fans snuggle up to their bigger and better iDevices, PouchDB users will appreciate PouchDB 3.0.6. This release contains a workaround for some unforeseen hiccups in Apple's new implementation of IndexedDB for Safari 7.1 and iOS 8.

All joking aside, we are happy to welcome Apple to the IndexedDB party (better late than never!), and we are working with the WebKit devs to resolve the issue. In the meantime, PouchDB 3.0.6 provides a workaround where we fall back to Web SQL on Apple browsers.

Other fixes in this release:

  • db.compact() performance improvements (#2623)
  • Ensure attachments work after Chrome 38 upgrade (#2773)
  • Invalid/unauthorized documents no longer halt replication (#2268)
  • Filtering no longer halts replication (#2689)
  • Update lie dependency to 2.8.0

New features in this release:

  • db.info() shows whether auto_compaction is set (#2744)

3.0.5

07 Sep 19:38
Compare
Choose a tag to compare

Tonight our fine dining selection is PouchDB 3.0.5, which fixes some issues with excessive recursion and also PouchDB.sync not always working correctly.

PouchDB.sync un-borked (#2735)

You can now call PouchDB.sync('mydb', 'http://localhost:5984/mydb') using just the database names.

Less typing === more win.

No more infinite recursion (#2543)

You can now have as many revisions to your documents as you want, and you'll no longer descend Inception-style into a "too much recursion" or "maximum call stack" error.

We literally wrote a custom JSON parser to fix this. That's how much we love you.

3.0.4

05 Sep 02:18
Compare
Choose a tag to compare

This week we present PouchDB 3.0.4, which fixes a bunch of stuff with attachments. Now the kittens generated by the 3.0.0 release may be safely stored in Pouch.

Attachmentspalooza

  • In Firefox, different attachments now (correctly) have different MD5 hashes. Previously they were just hashes of the string '[Object] object'. With this, we also now check that the hashes we produce are identical to the ones that CouchDB produces (with the exception of plaintext ones due to Erlang being weird and not having ASCII strings) (#2698).
  • Weirdness in Chrome 37-39 with FileReader and empty blobs is now fixed (#2713).
  • Fix for a bug in Chrome 37 relating to blobs in IndexedDB (#2701).
  • HTTP pouches now support buffer/blob data in attachments (#2577).

Other fixes in 3.0.4

3.0.3

30 Aug 01:59
Compare
Choose a tag to compare

Another week, another PouchDB patch release!

This week we present PouchDB 3.0.3, which fixes some ornery issues with replication that were introduced by recent performance optimizations (#2685).

In fact, those performance optimizations have been rolled back. The current implementation appears to be the fastest possible given CouchDB's replication protocol, and the clever tricks introduced in 3.0.0 actually pushed conflicts into CouchDB's revision history, which is bad news for apps that rely on custom conflict resolution. (If you just use the default "pick a random winner," you probably didn't notice anything.)

And although "custom conflict resolution" may only describe a minority of apps, we felt it's better to be correct 100% of the time than to be speedy.

Dealing with slow replication

If you experience slow replications after upgrading to 3.0.3, here are some suggestions:

  1. Avoid CORS if you can, because it uses twice as many HTTP requests. Some tips for doing this:
    • If you are using IrisCouch, you can create a couchapp (i.e. let CouchDB serve your HTML/CSS/JS).
    • If you are running your own CouchDB, you can set up a reverse proxy with Apache or Nginx that allows you to serve your app and CouchDB from the same domain. Or create a couchapp.
  2. Try using the "every doc is a delta" pattern, as described in this blog post and exemplified in the delta-pouch plugin. Your replications will be much faster, because PouchDB is able to use an optimization for generation-1 documents, and in this setup, every document is a generation-1 document.
  3. Otherwise, just minimize the number of documents you create. Or minimize the number of documents you sync to the client. Views can be helpful with this, although the low performance of the query() API relative to the allDocs() API should be balanced with that.

Other fixes in 3.0.3

  • Auto-compaction is no longer experimental! It's fully supported. (#2655)
  • 'change' listeners aren't called after replication is canceled. (#2478)
  • Bower package is smaller. (#2659)

3.0.2

21 Aug 03:52
Compare
Choose a tag to compare

PouchDB 3.0.2 is another small patch release, this time to fix a bug in replication of deleted documents (#2636).

Other fixes:

  • Ensure PouchDB stops writing after replication is over (#2639)
  • Fix a race condition in LevelDB (#2631)
  • Allow special URI characters in doc IDs (#2651)

3.0.1

16 Aug 18:57
Compare
Choose a tag to compare

PouchDB 3.0.1 is a patch release to fix a migration bug in PouchDB 3.0.0 (#2456). Please upgrade your existing users directly from 2.2.3 and do not use 3.0.0.

This release also contains a small performance boost for bulkDocs() (#2553).

3.0.0

12 Aug 16:53
Compare
Choose a tag to compare

Breaking Changes:

  • The browser build pouchdb-nightly.js has been renamed to pouchdb.js. It was never really a nightly anyway. (#2146)
  • opts.server has been deprecated from the replicate() and sync() 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 of err.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:

  • Local documents are now unversioned for better map/reduce performance and to better align the update_seq with CouchDB (#2023). Also fixes an issue with replication and changes(). (#2342)
  • 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)
  • 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 in query(). (pouchdb/mapreduce#196, pouchdb/mapreduce#198)
Complete list of changes

2.2.3

31 May 19:01
Compare
Choose a tag to compare

PouchDB 2.2.3 is now released! Please file issues or tell us what you think. We would also like to give a huge thanks to our new and existing contributors.

Major Changes:

  • Experimental browser adapter plugins (#2190)
  • Fix Ember.js integration (#2158)
  • Fix Browserify integration (#2249, pouchdb/mapreduce#170)
  • Fixes for conflict resolution (#2072)
  • Better error handling in replication (#2122)
  • Fix Internet Explorer 10-11 (#1661, #2198, #2132)
  • Fix attachments in Android 4.x (#1992)
  • Fix LevelDB memory leak, race condition, error messages (#2250, #2251, #2144)
  • Perf improvements for replication in WebSQL & IndexedDB (#2180, #2178)
  • Bugfixes for IndexedDB inclusive_end (#2129)
  • Fix changes() memory leak (#2311)
Complete list of changes

2.2.2

18 May 05:19
Compare
Choose a tag to compare

2.2.2 is a minor release to fix an error in the 2.2.1 npm package caused by a bug in Node 0.11 (#2245)

2.2.1

18 May 05:17
Compare
Choose a tag to compare

2.2.1 is a minor release that fixes a bug in viewCleanup() where indexes were not properly cleaned up (#2162).

No data will be lost if you upgrade from 2.2.0 to 2.2.1; you can continue using persistent map/reduce like you were before. This release does not contain a database migration.

This release also updates our dependencies, such as lie v2.7.4, which contains some performance improvements since the last release.