(#3144) - properly destroy databases created with {db: require('memdown')}
(#3141) - Explain leveldown optional dependency
(#3141) - Fix Linux -> Unix
(#2867) - do not stack notify change listeners
(#2867) - Fix changes test with autocompaction
(#3151) - Async testing blog post
(#3153) - avoid unnecessary allDocs() call

I noticed that we do _all_docs requests even
when keys=[], which is wasteful.
(2143) Get PouchDB's scripts to run properly on Windows

bin/build-plugin.sh - The resolve library in browerify acts differently on
Linux and Windows when
resolving ./lib/deps/migrate. But getting rid of the path and just using
the package name migrate (since this is a rename) seems to work
in both places. Also got rid of the accidental duplication of the migrate
line.

package.json - For calls to sh scripts change the call from being a path
 starting with './bin/' to start with 'sh bin/' and change calls to js
 files to change from './bin/' to 'node ./bin/'. Also had to set
 run-test.sh to use 'bash' and not 'sh' because it's a bash script.

test.attachments.js - Added the hashes for the attachments generated
by CouchDB on Windows. For some reason they are different than those
on Linux. We really should remove these hashes all together, please
see #3156
Merge pull request #3152 from thaliproject/2143-build-on-windows

(#2143) Get PouchDB's scripts to run properly on Windows
(#3146) - Adding pull replication performance tests

perf.basics.js - Add three tests. One does a pull replication against skimdb and is
disabled by default. The second and third tests test pull replication against a local
DB over the network. The difference between the tests is that one uses first generation
documents and the other uses second generation documents.

test/performance/utils.js - Fixed so that if iterations == 0 a test won't run and
also added a per test tear down functionality.

common-utils.js - Created this file to hold some, well, common utilities.

replication-test.js - Contains the pull replication test framework.

A huge thanks to daleharvey for taking the time to rework the content
in replication-test.js so it would be acceptable to the group!
(#2907) - Updating 'Common Errors' page

...with 'No valid adapter found' error, and 'Unknown
(Chrome/Opera)' error explanations.
(#3160) - Remove redundant jshint dir
(#3136) - fix changes() when earlier winning seq

In the previous version of the changes() algorithm,
we were assuming that the winning seq was later than
all non-winning seqs, which isn't necessarily the case
when you've got conflicts. This fixes that.
(#3169) - edit guide to changes

Now that I understand `last_seq` better, I understand
that it is not a footgun.
(#3089) - truly auto auto-compaction
(#3015) - Issues GET requests on pull replication in parallel for each batch.

In node.js using default settings (5 connections in the pool + 100 docs per batch) over a HTTP connection to a local PouchDB server perf increased by 8x over previous perf.

When replicating down the 0.6 gig NPM CouchDB database over HTTPS using CouchDB locally it took CouchDB about 0.69 seconds/100 records. Without this change it took PouchDB around 30 seconds/100 records. With this change on default settings we reduced time to 4 seconds/100 records. By changing the number of connections to 15 and the batch size to 1000 we got perf down to 0.9 seconds/100 records. So perf got down to only 30% worse than CouchDB. I strongly suspect that when the node.js connection harvesting bug is fixed (so we don't lose our existing connections between batches) and with a little more tweaking (it's clear that we are a bit more 'chatty' than CouchDB's replication client) we should be able to match CouchDB's perf.
(#3094) - Add easy to run couchdb server with Docker and Fig

update CONTRIBUTING and TESTING accordingly
remove test part from CONTRIBUTING, link to TESTING, DRY
(#3178) - update "12 tips" post