You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by wo...@apache.org on 2018/07/24 00:04:12 UTC

[couchdb-documentation] 01/01: [WIP] Partial 2.2 release notes

This is an automated email from the ASF dual-hosted git repository.

wohali pushed a commit to branch 2.2.0-release-notes
in repository https://gitbox.apache.org/repos/asf/couchdb-documentation.git

commit f6287319df681d039e5bf296ecbab4424b316026
Author: Joan Touzet <wo...@atypical.net>
AuthorDate: Mon Jul 23 19:56:57 2018 -0400

    [WIP] Partial 2.2 release notes
---
 src/whatsnew/2.2.rst | 152 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 147 insertions(+), 5 deletions(-)

diff --git a/src/whatsnew/2.2.rst b/src/whatsnew/2.2.rst
index 8b19c67..9b8931c 100644
--- a/src/whatsnew/2.2.rst
+++ b/src/whatsnew/2.2.rst
@@ -32,28 +32,170 @@ Upgrade Notes
   version of CouchDB is replicating TO this instance/cluster. Replicating FROM older 
   versions is fine. A future version will make this a default.
 
-* Item 2
+* :ghissue:`820`, :ghissue:`1032`: Multiple queries can now be made at the
+  ``POST /{db}/_all_docs/queries``, ``POST /{db}/_design_docs/queries`` and
+  ``POST /{db}/_local_docs/queries`` endpoints. Also, a new endpoint
+  ``POST /{db}/_design/{ddoc}/_view/{view}/queries`` has been introduced to replace
+  the ``?queries`` parameter formerly provided for making multiple queries to a view.
+  The old ``?queries`` parameter *is now deprecated and will be removed in a future release
+  of CouchDB.*
+
+* The maximum http request limit, which had been lowered in 2.1.0, has been re-raised
+  to a 4GB limit for now. (:ghissue:`1446`). Ongoing discussion about the path forward
+  for future releases is available in :ghissue:`1200` and :ghissue:`1253`.
+
+* :ghissue:`1153`: The CouchDB replicator can now make use of the ``/_session`` endpoint
+  rather than relying entirely on HTTP basic authentication headers. This can greatly
+  improve replication performance. We encourage you to upgrade any nodes or clusters that
+  regularly act as replication clients to use this new feature, which is enabled by
+  default (:ghissue:`1462`).
 
-* Item 3
 
 Version 2.2.0
 =============
 
-Security
+Features
+--------
+
+.. rst-class:: open
+
+* Much improved documentation. Highlights include:
+
+  * TODO: LINK Database sharding/clustering: complete rewrite
+  * Developer installation notes (``INSTALL.*.rst``)
+
+* Much improved Fauxton functionality. Highlights include:
+
+  *
+
+* :ghissue:`496`, :issue:`3287`: New pluggable storage engine framework has landed in
+  CouchDB. This internal refactor makes it possible for CouchDB to use different backends
+  for storing the base database file itself. The refactor included a full migration of
+  the existing "legacy" storage engine into the new framework.
+* :ghissue:`603`: When creating a new database on a cluster without quorum, CouchDB will
+  now return a ``202 Accepted`` code if possible, indicating that at least one node
+  has written the database record to disk, and that other nodes will be updated as they
+  return to an online state. This replaces the former ``500`` internal error.
+* :ghissue:`745`: CouchDB no longer fails to complete replicating databases with
+  large attachments. The fix for this issue included several related changes:
+
+  * The maximum http request limit, which had been lowered in 2.1.0, has been re-raised
+    to a 4GB limit for now. (:ghissue:`1446`). Ongoing discussion about the path forward
+    for future releases is available in :ghissue:`1200` and :ghissue:`1253`.
+  * An update to the replicator http client that improves active socket accounting,
+    without which CouchDB can cease to be responsive over the main http interface
+    (:ghissue:`1117`)
+  * The replicator's http client no longer performs unconditional retries on failure
+    (:ghissue:`1177`)
+  * A path by which CouchDB could lose track of their RPC workers during multipart
+    attachment processing was removed. (:ghissue:`1178`)
+  * When CouchDB transmits a ``413 Payload Too Large`` response on attachment upload,
+    it now correctly flushes the receive socket before closing the connection to avoid
+    a TCP reset, and to give the client a better chance of parsing the 413 response. In
+    tandem, the replicator http client correctly closes its own socket after processing
+    any 413 response. (:ghissue:`1234`)
+
+* TODO LINK :ghissue:`822`: A new ``POST /_dbs_info`` endpoint has been added to return
+  information about a list of specified databases. This endpoint can take the place of
+  multiple queries to ``/{db}``.
+* :ghissue:`875`, :ghissue:`1030`: ``couch_peruser`` installations can now specify a
+  default ``q`` value for each peruser-created database that is different from the
+  cluster's ``q`` value. Set this in your local ini file, under ``[couch_peruser] q``.
+* :ghissue:`876`, :ghissue:`1068`: The ``couch_peruser`` database prefix is now
+  configurable through your local ini file, under ``[couch_peruser] database_prefix``.
+* :ghissue:`887`: Replicator documents can now include parameters for target database
+  creation, such as ``"create_target_params": {"q": "1"}``. This can assist in
+  database resharding or placement.
+* :ghissue:`977`: When using ``COPY`` to copy a document, CouchDB no longer fails if
+  the new ID includes Unicode characters.
+* :ghissue:`1095`: Recognize the environment variables ``ARGS_FILE``, ``SYSCONFIG_FILE``,
+  ``COUCHDB_ARGS_FILE`` and ``COUCHDB_SYSCONFIG_FILE`` to overrride where CouchDB looks
+  for the ``vm.args`` and ``sys.config`` files at startup.
+* :ghissue:`1126`: When queried back after saving, replication documents no longer
+  contain sensitive credential information (such as basic authenticataion headers).
+* :ghissue:`1203`: The compaction daemon now has a snooze period, during which it waits
+  to start the next compaction after finishing the previous one. This value is useful
+  in ``couch_peruser`` setups, which can cause a CPU spike every ``check_interval``
+  seconds. The setting can be adjusted in your local ini file via
+  ``[compaction_daemon] snooze_period``. The current default is a 3 second pause.
+
+Bugfixes
 --------
 
-General
--------
+.. rst-class:: open
+
+* :ghissue:`832`, :ghissue:`1064`: Tracking of Couch logging stats has been added back
+  into the per-node ``/_node/<node-name>/_stats`` endpoint.
+* :ghissue:`955`: The ``/{db}/_bulk_docs`` endpoint now correctly responds with a
+  ``400 Bad Request`` error if the ``new_edits`` parameter is not a boolean.
+* :ghissue:`953`, :ghissue:`973`: Return ``404 Not Found`` on ``GET /_scheduler``,
+  not ``405 Method Not Allowed``.
+* :ghissue:`969`: CouchDB now returns ``offset`` and ``update_seq`` values when ``keys``
+  are provided to the ``GET`` or ``POST`` ``/{db}/_all_docs?update_seq=true`` endpoints.
+  This was affecting PouchDB compatibility.
+* :ghissue:`1012`: Address a theoretical race condition the replication scheduler could
+  encounter when trying to determine if the cluster is "stable" enough to resume
+  handling replication-introduced document updates.
+* :ghissue:`1051`: Return a user-friendly error message when attempting to create a
+  CouchDB user with an invalid password field (non-string).
 
 Performance
 -----------
 
+.. rst-class:: open
+
 Mango
 -----
 
+.. rst-class:: open
+
+* :ghissue:`816`, :ghissue:`962`, :ghissue:`1038`: If a user specifies a value for
+  ``use_index`` that is not valid for the selector (does not meet coverage requirements
+  or proper sort fields), attempt to fall back to a valid index or full DB scan rather
+  than returning  a ``400``.  If we fall back, populate a ``warning`` field in the
+  response. Mango also tries to use indexes where ``$or`` may select a field only when
+  certain values are present.
+* :ghissue:`849`: When ``{"seq_indexed": true}`` is specified, a badmatch error was
+  returned. This is now fixed.
+* :ghissue:`951`: When using ``GET /{db}/_index``, only use a partial filter selector for
+  an index if it is set to something other than the default.
+* :ghissue:`961`: Do not prefix ``_design/`` to a Mango index name whose user-specified
+  name already starts with ``_design/``.
+* :ghissue:`988`, :ghissue:`989`: When specifying a ``use_index`` value with an invalid
+  index, correctly return a ``400 Bad Request`` showing that the requested index is
+  invalid for the request specified.
+* :ghissue:`998`: The fix for :ref:`CVE 2017-12635 <cve/2017-12635>` presented a breaking
+  change to Mango's ``/{db}/_find``, which would evaluate all instances of all JSON
+  fields in a selector. Mango is now tested to ensure it only considers the last instance
+  of a field, silently ignoring those that appear before it.
+* :ghissue:`1014`: Correctly deduce list of indexed fields in a selector when nested
+  ``$and`` operators are specified.
+* :ghissue:`1023`: Fix an unexpected ``500`` error if ``startkey`` and ``endkey`` in a
+  Mango selector were reversed.
+* :ghissue:`1067`: Prevent an ``invalid_cast`` crash when the ``couch_proc_manager`` soft
+  limit for processes is reached and mango idle processes are stopped.
+* Multiple fixes related to using Mango as a front-end for full text indexing (a feature
+  not shipped with couch, but for which support is in place as a compile-time addon).
+
+
 Other
 -----
 
 The 2.2.0 release also includes the following minor improvements:
 
+.. rst-class:: open
+
+* Developers can, at build time, enable curl libraries & disable Fauxton and documentation
+  builds by specifying the new ``--dev`` option to the ``configure`` script.
+* The ``mochiweb`` dependency was bumped to version 2.17.0, in part to address the
+  difficult :ghissue:`745` issue.
+* Improved compatibility with newer versions of Erlang (20.x)
+* Multiple test suite improvements, focused on increased coverage, speed, and
+  reliability.
+* Improvements to the Travis CI and Jenkins CI setups, focused on improved long-term
+  project maintenance and automatability.
+* Related improvements to the CouchDB deb/rpm packaging and Docker repositories to
+  make deployment even easier.
+* :ghissue:`1007`: Move ``etc/default.ini`` entries back into ``[replicator]`` section
+  (incorrectly moved to ``[couch_peruser]`` section)
 * A pony! OK, no, not really. If you got this far, thank you for reading.