.. 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.3.x:

============
1.3.x Branch
============

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

.. warning::

   :ref:`release/1.3.x` is affected by the issue described in :ref:`cve/2014-2668`.
   Upgrading to a more recent release is strongly recommended.

.. _release/1.3.x/upgrade:

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

You can upgrade your existing CouchDB 1.0.x installation to 1.3.0
without any specific steps or migration. When you run CouchDB, the
existing data and index files will be opened and used as normal.

The first time you run a compaction routine on your database within 1.3.0,
the data structure and indexes will be updated to the new version of the
CouchDB database format that can only be read by CouchDB 1.3.0 and later.
This step is not reversible. Once the data files have been updated and
migrated to the new version the data files will no longer work with a
CouchDB 1.0.x release.

.. warning::
   If you want to retain support for opening the data files in
   CouchDB 1.0.x you must back up your data files before performing the
   upgrade and compaction process.


.. _release/1.3.1:

Version 1.3.1
=============

Replicator
----------

* :issue:`1788`: Tolerate missing source and target fields in _replicator docs.
  :commit:`869f42e2`

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

* :issue:`1794`: Fix bug in WARN level logging from 1.3.0.
* Don't log about missing .compact files. :commit:`06f1a8dc`

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

* :issue:`1792`: Fix the -S option to couchjs to increase memory limits.
  :commit:`cfaa66cd`

Miscellaneous
-------------

* :issue:`1784`: Improvements to test suite and VPATH build system.
  :commit:`01afaa4f`
* Improve documentation: better structure, improve language, less duplication.


.. _release/1.3.0:

Version 1.3.0
=============

Database core
-------------

* :issue:`1512`: Validate bind address before assignment. :commit:`09ead8a0`
* Restore ``max_document_size`` protection. :commit:`bf1eb135`

Documentation
-------------

* :issue:`1523`: Import CouchBase documentation and convert them into
  `Sphinx docs <http://sphinx.pocoo.org/>`_

Futon
-----

* :issue:`509`: Added view request duration to Futon. :commit:`2d2c7d1e`
* :issue:`627`: Support all timezones. :commit:`b1a049bb`
* :issue:`1383`: Futon view editor won't allow you to save original view after
  saving a revision. :commit:`ce48342`
* :issue:`1470`: Futon raises popup on attempt to navigate to missed/deleted
  document. :commit:`5da40eef`
* :issue:`1473`, :issue:`1472`: Disable buttons for actions that the user
  doesn't have permissions to. :commit:`7156254d`

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

* :issue:`431`: Introduce experimental :ref:`CORS support <cors>`.
  :commit:`b90e4021`
* :issue:`764`, :issue:`514`, :issue:`430`: Fix sending HTTP headers from
  ``_list`` function, :commit:`2a74f88375`
* :issue:`887`: Fix ``bytes`` and ``offset`` parameters semantic for `_log`
  resource (`explanation <https://git-wip-us.apache.org/repos/asf?p=couchdb.git;a=blobdiff;f=src/couchdb/couch_log.erl;h=1b05f4db2;hp=0befe7aab;hb=ad700014;hpb=7809f3ca>`_)
  :commit:`ad700014`
* :issue:`986`: Added Server-Sent Events protocol to db changes API.
  See http://www.w3.org/TR/eventsource/ for details. :commit:`093d2aa6`
* :issue:`1026`: Database names are encoded with respect of special characters
  in the rewriter now. :commit:`272d6415`
* :issue:`1097`: Allow `OPTIONS` request to shows and lists functions.
  :commit:`9f53704a`
* :issue:`1210`: Files starting with underscore can be attached and updated now.
  :commit:`05858792`
* :issue:`1277`: Better query parameter support and code clarity:
  :commit:`7e3c69ba`

  * Responses to documents created/modified via form data `POST` to /db/doc or
    copied with `COPY` should now include `Location` header.
  * Form data POST to /db/doc now includes an `ETag` response header.
  * ``?batch=ok`` is now supported for `COPY` and `POST` /db/doc updates.
  * ``?new_edits=false`` is now supported for more operations.

* :issue:`1285`: Allow configuration of vendor and modules version in CouchDB
  welcome message. :commit:`3c24a94d`
* :issue:`1321`: Variables in rewrite rules breaks OAuth authentication.
  :commit:`c307ba95`
* :issue:`1337`: Use MD5 for attachment ETag header value. :commit:`6d912c9f`
* :issue:`1381`: Add jquery.couch support for Windows 8 Metro apps.
  :commit:`dfc5d37c`
* :issue:`1441`: Limit recursion depth in the URL rewriter.
  Defaults to a maximum of 100 invocations but is configurable.
  :commit:`d076976c`
* :issue:`1442`: No longer rewrites the `X-CouchDB-Requested-Path` during
  recursive calls to the rewriter. :commit:`56744f2f`
* :issue:`1501`: :ref:`Changes feed <changes>` now can take special parameter
  ``since=now`` to emit changes since current point of time. :commit:`3bbb2612`
* :issue:`1502`: Allow users to delete own _users doc. :commit:`f0d6f19bc8`
* :issue:`1511`: CouchDB checks `roles` field for `_users` database documents
  with more care. :commit:`41205000`
* :issue:`1537`: Include user name in show/list `ETags`. :commit:`ac320479`
* Send a 202 response for `_restart`. :commit:`b213e16f`
* Make password hashing synchronous when using the /_config/admins API.
  :commit:`08071a80`
* Add support to serve single file with CouchDB, :commit:`2774531ff2`
* Allow any 2xx code to indicate success, :commit:`0d50103cfd`
* Fix `_session` for IE7.
* Restore 400 error for empty PUT, :commit:`2057b895`
* Return ``X-Couch-Id`` header if doc is created, :commit:`98515bf0b9`
* Support auth cookies with ``:`` characters, :commit:`d9566c831d`

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

* :issue:`1380`: Minor fixes for logrotate support.
* Improve file I/O error logging and handling, :commit:`4b6475da`
* Module Level Logging, :commit:`b58f069167`
* Log 5xx responses at error level, :commit:`e896b0b7`
* Log problems opening database at ERROR level except for auto-created
  system dbs, :commit:`41667642f7`

Replicator
----------

* :issue:`1248`: `HTTP 500` error now doesn't occurs when replicating with
  ``?doc_ids=null``. :commit:`bea76dbf`
* :issue:`1259`: Stabilize replication id, :commit:`c6252d6d7f`
* :issue:`1323`: Replicator now acts as standalone application.
  :commit:`f913ca6e`
* :issue:`1363`: Fix rarely occurred, but still race condition in changes feed
  if a quick burst of changes happens while replication is starting the
  replication can go stale. :commit:`573a7bb9`
* :issue:`1557`: Upgrade some code to use BIFs bring good improvements for
  replication.

Security
--------

* :issue:`1060`: Passwords are now hashed using the PBKDF2 algorithm with a
  configurable work factor. :commit:`7d418134`

Source Repository
-----------------

* The source repository was migrated from `SVN`_ to `Git`_.

.. _SVN: https://svn.apache.org/repos/asf/couchdb
.. _Git: https://git-wip-us.apache.org/repos/asf/couchdb.git

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

* Fixed unnecessary conflict when deleting and creating a
  document in the same batch.

Test Suite
----------

* :issue:`1321`: Moved the JS test suite to the CLI.
* :issue:`1338`: Start CouchDB with ``port=0``. While CouchDB might be already
  running on the default port 5984, port number 0 let the TCP stack figure out a
  free port to run. :commit:`127cbe3`
* :issue:`1339`: Use shell trap to catch dying beam processes during test runs.
  :commit:`2921c78`
* :issue:`1389`: Improved tracebacks printed by the JS CLI tests.
* :issue:`1563`: Ensures urlPrefix is set in all ajax requests.
  :commit:`07a6af222`
* Fix race condition for test running on faster hardware.
* Improved the reliability of a number of tests.


URL Rewriter & Vhosts
---------------------

* :issue:`1026`: Database name is encoded during rewriting
  (allowing embedded /'s, etc). :commit:`272d6415`

UUID Algorithms
---------------

* :issue:`1373`: Added the utc_id algorithm :commit:`5ab712a2`

Query and View Server
---------------------

* :issue:`111`: Improve the errors reported by the javascript view server
  to provide a more friendly error report when something goes wrong.
  :commit:`0c619ed`
* :issue:`410`: More graceful error handling for JavaScript validate_doc_update
  functions.
* :issue:`1372`: `_stats` builtin reduce function no longer produces error for
  empty view result.
* :issue:`1444`: Fix missed_named_view error that occurs on existed design
  documents and views. :commit:`b59ac98b`
* :issue:`1445`: CouchDB tries no more to delete view file if it couldn't open
  it, even if the error is `emfile`.
* :issue:`1483`: Update handlers requires valid doc ids. :commit:`72ea7e38`
* :issue:`1491`: Clenaup view tables. :commit:`c37204b7`
* Deprecate E4X support, :commit:`cdfdda2314`

Windows
-------

* :issue:`1482`: Use correct linker flag to build `snappy_nif.dll` on Windows.
  :commit:`a6eaf9f1`
* Allows building cleanly on Windows without cURL, :commit:`fb670f5712`
