Apache CouchDB NEWS
===================

For details about backwards incompatible changes, see:

  http://wiki.apache.org/couchdb/Breaking_changes

Each release section notes when backwards incompatible changes have been made.

Version 1.0.1
-------------

  * Fix data corruption bug COUCHDB-844. Please see
    http://couchdb.apache.org/notice/1.0.1.html for details.
  * Added support for replication via an HTTP/HTTP proxy.
  * Fixed various replicator bugs for interop with older CouchDB versions.
  * Show fields saved along with _deleted=true. Allows for auditing of deletes.
  * Enable basic-auth popup when required to access the server, to prevent
    people from getting locked out.
  * User interface element for querying stale (cached) views.

Version 1.0.0
-------------

 * More efficient header commits.
 * Use O_APPEND to save lseeks.
 * Faster implementation of pread_iolist(). Further improves performance on
   concurrent reads.
 * Added authentication caching
 * Faster default view collation.
 * Added option to include update_seq in view responses.

Version 0.11.2
--------------

  * Replicator buxfixes for replicating design documents from secured databases.
  * Better error messages on invalid URL requests.
  * User documents can now be deleted by admins or the user.
  * Avoid potential DOS attack by guarding all creation of atoms.
  * Some Futon and JavaScript library bugfixes.

Version 0.11.1
--------------

 * Mask passwords in active tasks and logging.
 * Update mochijson2 to allow output of BigNums not in float form.
 * Added support for X-HTTP-METHOD-OVERRIDE.
 * Disable jsonp by default.
 * Accept gzip encoded standalone attachments.
 * Made max_concurrent_connections configurable.
 * Added continuous replication option to Futon.
 * Added option to replicating test results anonymously to a community
   CouchDB instance.
 * Allow creation and deletion of config entries in Futon.
 * Fixed various UI issues in Futon.
 * Fixed compatibility with the Erlang R14 series.
 * Fixed warnings on Linux builds.
 * Fixed build error when aclocal needs to be called during the build.
 * Require ICU 4.3.1.
 * Fixed compatibility with Solaris.
 * Added authentication redirect URL to log in clients.
 * Added authentication caching, to avoid repeated opening and closing of the
   users database for each request requiring authentication.
 * Made authentication timeout configurable.
 * Temporary views are now admin-only resources.
 * Don't require a revpos for attachment stubs.
 * Make file deletions async to avoid pauses during compaction and db
   deletion.
 * Fixed for wrong offset when writing headers and converting them to blocks,
   only triggered when header is larger than 4k.
 * Preserve _revs_limit and instance_start_time after compaction.
 * Fixed timeout with large .ini files.
 * Added tests for couch.js and jquery.couch.js
 * Added various API features to jquery.couch.js
 * Faster default view collation.
 * Upgrade CommonJS modules support to 1.1.1.
 * Added option to include update_seq in view responses.
 * Fixed erlang filter funs and normalize filter fun API.
 * Fixed hang in view shutdown.
 * Refactored various internal APIs related to attachment streaming.
 * Fixed hanging replication.
 * Fixed keepalive issue.
 * Allow global rewrites so system defaults are available in vhosts.
 * Allow isolation of databases with vhosts.
 * Made the test suite overall more reliable.

Version 0.11.0
--------------

This version is a feature-freeze release candidate for Apache CouchDB 1.0.

 * Fixed CVE-2010-0009: Apache CouchDB Timing Attack Vulnerability.
 * Added support for building a Windows installer as part of 'make dist'.
 * Added optional 'raw' binary collation for faster view builds where Unicode
   collation is not important.
 * Improved view index build time by reducing ICU collation callouts.
 * Added option to implicitly create replication target databases.
 * Improved view information objects.
 * Bug fix for partial updates during view builds.
 * Bug fix for building couch.app's module list.
 * Fixed a problem with statistics timers and system sleep.
 * Improved the statistics calculations to use an online moving window
   algorithm.
 * Adds batching of multiple updating requests, to improve throughput with many
   writers.
 * Removed the now redundant couch_batch_save module.
 * Bug fix for premature termination of chunked responses.
 * Improved speed and concurrency of config lookups.
 * Fixed an edge case for HTTP redirects during replication.
 * Fixed HTTP timeout handling for replication.
 * Fixed query parameter handling in OAuth'd replication.
 * Fixed a bug preventing mixing languages with lists and views.
 * Avoid OS process leaks in lists.
 * Avoid leaking file descriptors on automatic replication restarts.
 * Various improvements to the Futon UI.
 * Provide Content-MD5 header support for attachments.
 * Added default cookie-authentication and users db.
 * Added per-db reader access control lists.
 * Added per-db security object for configuration data in validation functions.
 * Added URL Rewriter handler.
 * Added proxy authentication handler.
 * Added ability to replicate documents by id.
 * Added virtual host handling.
 * Uses json2.js for JSON serialization compatiblity with native JSON.
 * Fixed CVE-2010-0009: Apache CouchDB Timing Attack Vulnerability.

Version 0.10.2
--------------

 * Fixed CVE-2010-0009: Apache CouchDB Timing Attack Vulnerability.

Version 0.10.1
--------------

 * Fixed test suite to work with build system.
 * Fixed a problem with statistics timers and system sleep.
 * Fixed an edge case for HTTP redirects during replication.
 * Fixed HTTP timeout handling for replication.
 * Fixed query parameter handling in OAuth'd replication.
 * Fixed a bug preventing mixing languages with lists and views.
 * Avoid OS process leaks in lists.

Version 0.10.0
--------------

This release contains backwards incompatible changes, please see above for help.

 * General performance improvements.
 * View index generation speedups.
 * Even more robust storage format.
 * Native Erlang Views for high-performance applications.
 * More robust push and pull replication.
 * Two-legged OAuth support for applications and replication (three-legged in
   preparation).
 * Cookie authentication.
 * API detail improvements.
 * Better RFC 2616 (HTTP 1.1) compliance.
 * Added modular configuration file directories.
 * Miscellaneous improvements to build, system integration, and portability.

Version 0.9.2
-------------

 * Remove branch callbacks to allow building couchjs against newer versions of
   Spidermonkey.
 * Fix replication with 0.10 servers initiated by an 0.9 server.

Version 0.9.1
-------------

 * Various bug fixes for the build system, configuration, statistics reporting,
   database core, external handlers, Futon interface, HTTP interface,
   JavaScript View Server and replicator.

Version 0.9.0
-------------

This release contains backwards incompatible changes, please see above for help.

 * Modular configuration.
 * Performance enhancements for document and view access.
 * More resilient replication process.
 * Replication streams binary attachments.
 * Administrator role and basic authentication.
 * Document validation functions in design documents.
 * Show and list functions for rendering documents and views as developer
   controlled content-types.
 * External process server module.
 * Attachment uploading from Futon.
 * Etags for views, lists, shows, document and attachment requests.
 * Miscellaneous improvements to build, system integration, and portability.

Version 0.8.1-incubating
------------------------

 * Various bug fixes for replication, compaction, the HTTP interface and the
   JavaScript View Server.

Version 0.8.0-incubating
------------------------

This release contains backwards incompatible changes, please see above for help.

 * Changed core licensing to the Apache Software License 2.0.
 * Refactoring of the core view and storage engines.
 * Added support for incremental map/reduce views.
 * Changed database file format.
 * Many improvements to Futon, the web administration interface.
 * Miscellaneous improvements to build, system integration, and portability.
 * Swapped out Erlang's inets HTTP server for the Mochiweb HTTP server.
 * SpiderMonkey is no longer included with CouchDB, but rather treated as an
   external dependency.
 * Added bits of awesome.

Version 0.7.2
-------------

 * Small changes to build process and `couchdb` command.
 * Database server official port is now 5984 TCP/UDP instead of 8888.

Version 0.7.1
-------------

 * Small compatibility issue with Firefox 3 fixed.

Version 0.7.0
-------------

 * Infrastructure rewritten to use the GNU build system for portability.
 * The built-in database browsing tool has been rewritten to provide a much
   nicer interface for interacting directly with CouchDB from your web browser.
 * XML and Fabric have been replaced with JSON and JavaScript for data
   transport and View definitions.

Version 0.6.0
-------------

 * A replication facility is now available.
 * CouchPeek can now create, delete and view documents.
 * Building from source is easier and less error prone.

Version 0.5.0
-------------

 * A built-in CouchPeek utility.
 * A full install kit buildable from a single command.
 * A new GNU/Linux version is available. An OS X version is coming soon.

Version 0.4.0
-------------

 * Non-existent variables are now nil lists.
 * Couch error codes and messages are no longer sent in the HTTP fields,
   instead they are exclusively returned in the XML body. This is to avoid HTTP
   header parsing problems with oddly formed error messages.
 * Returned error messages are now logged at the server at the `info` level to
   make general debugging easier.
 * Fixed a problem where big table builds caused timeout errors.
 * Lots of changes in the low level machinery. Most formulas will continue to
   function the same.
 * Added full compiler support for extended characters in formula source.
 * Support for Perl/Ruby like regular expressions.
 * Added `total_rows` and `result_start` attributes to tables.

Version 0.3.0
-------------

 * CouchDB now fully supports Unicode and locale specific collation via the ICU
   library, both in the Fabric engine and computed tables.
 * The `in` operator has been added to Fabric.
 * The `startdoc` query string variable specifies the starting document to use
   if there are multiple rows with identical startkeys.
 * The `skip` query string variable specifies the number of rows to skip before
   returning results. The `skip` value must be a positive integer. If used with
   a `count` variable the skipped rows aren't counted as output.
 * Various changes to the output XML format.
