.. Licensed under the Apache License, Version 2.0 (the "License"); you may not
.. use this file except in compliance with the License. You may obtain a copy of
.. the License at
..
..   http://www.apache.org/licenses/LICENSE-2.0
..
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
.. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
.. License for the specific language governing permissions and limitations under
.. the License.

.. _release/1.0.x:

============
1.0.x Branch
============

.. contents::
    :depth: 1
    :local:

.. _release/1.0.x/upgrade:

Upgrade Notes
=============

Note, to replicate with a 1.0 CouchDB instance you must first upgrade in-place
your current CouchDB to 1.0 or 0.11.1 -- backporting so that 0.10.x can
replicate to 1.0 wouldn't be that hard. All that is required is patching the
replicator to use the ``application/json`` content type.

- ``_log`` and ``_temp_views`` are now admin-only resources.
- ``_bulk_docs`` now requires a valid `Content-Type` header of
  ``application/json``.
- `JSONP` is disabled by default. An .ini option was added to selectively
  enable it.
- The ``key``, ``startkey`` and ``endkey`` properties of the request object
  passed to :ref:`list <listfun>` and :ref:`show <showfun>` functions now
  contain JSON objects representing the URL encoded string values in the query
  string. Previously, these properties contained strings which needed to be
  converted to JSON before using.

.. warning::
    :ref:`release/1.0.4` contains important security fixes. Previous `1.0.x`
    releases are not recommended for regular usage.

.. _release/1.0.4:

Version 1.0.4
=============

HTTP Interface
--------------

* Fix missing revisions in ``_changes?style=all_docs``.
* Fix validation of attachment names.

Log System
----------

* Fix file descriptor leak in ``_log``.

Replicator
----------

* Fix a race condition where replications can go stale

Security
--------

* Fixed :ref:`cve/2012-5641`
* Fixed :ref:`cve/2012-5649`
* Fixed :ref:`cve/2012-5650`

View System
-----------

* Avoid invalidating view indexes when running out of file descriptors.

.. _release/1.0.3:

Version 1.0.3
=============

General
-------

* Fixed compatibility issues with Erlang R14B02.

Etap Test Suite
---------------

* Etap tests no longer require use of port 5984. They now use a randomly
  selected port so they won't clash with a running CouchDB.

Futon
-----

* Made compatible with jQuery 1.5.x.

HTTP Interface
--------------

* Fix bug that allows invalid UTF-8 after valid escapes.
* The query parameter `include_docs` now honors the parameter `conflicts`.
  This applies to queries against map views, _all_docs and _changes.
* Added support for inclusive_end with reduce views.

Replicator
----------

* Enabled replication over IPv6.
* Fixed for crashes in continuous and filtered changes feeds.
* Fixed error when restarting replications in OTP R14B02.
* Upgrade ibrowse to version 2.2.0.
* Fixed bug when using a filter and a limit of 1.

Security
--------

* Fixed OAuth signature computation in OTP R14B02.
* Handle passwords with : in them.

Storage System
--------------

* More performant queries against _changes and _all_docs when using the
  `include_docs` parameter.

Windows
-------

* Windows builds now require ICU >= 4.4.0 and Erlang >= R14B03. See
  :issue:`1152`, and :issue:`963` + OTP-9139 for more information.

.. _release/1.0.2:

Version 1.0.2
=============

Futon
-----

* Make test suite work with Safari and Chrome.
* Fixed animated progress spinner.
* Fix raw view document link due to overzealous URI encoding.
* Spell javascript correctly in loadScript(uri).

HTTP Interface
--------------

* Allow reduce=false parameter in map-only views.
* Fix parsing of Accept headers.
* Fix for multipart GET APIs when an attachment was created during a
  local-local replication. See :issue:`1022` for details.

Log System
----------

* Reduce lengthy stack traces.
* Allow logging of native <xml> types.

Replicator
----------

* Updated ibrowse library to 2.1.2 fixing numerous replication issues.
* Make sure that the replicator respects HTTP settings defined in the config.
* Fix error when the ibrowse connection closes unexpectedly.
* Fix authenticated replication (with HTTP basic auth) of design documents
  with attachments.
* Various fixes to make replication more resilient for edge-cases.

Storage System
--------------

* Fix leaking file handles after compacting databases and views.
* Fix databases forgetting their validation function after compaction.
* Fix occasional timeout errors after successfully compacting large databases.
* Fix occasional error when writing to a database that has just been compacted.
* Fix occasional timeout errors on systems with slow or heavily loaded IO.
* Fix for OOME when compactions include documents with many conflicts.
* Fix for missing attachment compression when MIME types included parameters.
* Preserve purge metadata during compaction to avoid spurious view rebuilds.
* Fix spurious conflicts introduced when uploading an attachment after
  a doc has been in a conflict. See :issue:`902` for details.
* Fix for frequently edited documents in multi-master deployments being
  duplicated in _changes and _all_docs.  See :issue:`968` for details on how
  to repair.
* Significantly higher read and write throughput against database and
  view index files.

View Server
-----------

* Don't trigger view updates when requesting `_design/doc/_info`.
* Fix for circular references in CommonJS requires.
* Made isArray() function available to functions executed in the query server.
* Documents are now sealed before being passed to map functions.
* Force view compaction failure when duplicated document data exists. When
  this error is seen in the logs users should rebuild their views from
  scratch to fix the issue. See :issue:`999` for details.

.. _release/1.0.1:

Version 1.0.1
=============

Authentication
--------------

* Enable basic-auth popup when required to access the server, to prevent
   people from getting locked out.

Build and System Integration
----------------------------

* Included additional source files for distribution.

Futon
-----

* User interface element for querying stale (cached) views.

HTTP Interface
--------------

* Expose `committed_update_seq` for monitoring purposes.
* Show fields saved along with _deleted=true. Allows for auditing of deletes.
* More robust Accept-header detection.

Replicator
----------

* Added support for replication via an HTTP/HTTPS proxy.
* Fix pull replication of attachments from 0.11 to 1.0.x.
* Make the _changes feed work with non-integer seqnums.

Storage System
--------------

* Fix data corruption bug :issue:`844`. Please see
  http://couchdb.apache.org/notice/1.0.1.html for details.

.. _release/1.0.0:

Version 1.0.0
=============

Security
--------

* Added authentication caching, to avoid repeated opening and closing of the
  users database for each request requiring authentication.

Storage System
--------------

* Small optimization for reordering result lists.
* More efficient header commits.
* Use O_APPEND to save lseeks.
* Faster implementation of pread_iolist(). Further improves performance on
  concurrent reads.

View Server
-----------

* Faster default view collation.
* Added option to include update_seq in view responses.
