This is an automated email from the ASF dual-hosted git repository.
wohali pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-documentation.git
The following commit(s) were added to refs/heads/master by this push:
new 80b20ee 3.0.0 relnotes (#471)
80b20ee is described below
commit 80b20ee6a2237a0d173801b93efd59d1470298c5
Author: Joan Touzet <[email protected]>
AuthorDate: Tue Jan 28 12:28:51 2020 -0500
3.0.0 relnotes (#471)
Current up through 2020.01.15, any changes to couchdb since then still need
documenting.
---
images/23379351593_0c480537de_q.jpg | Bin 0 -> 15822 bytes
make.bat | 7 +
src/api/partitioned-dbs.rst | 2 +
src/conf.py | 6 +-
src/config/indexbuilds.rst | 4 +-
src/config/query-servers.rst | 2 +
src/whatsnew/3.0.rst | 528 ++++++++++++++++++++++++++++++++++++
src/whatsnew/index.rst | 1 +
8 files changed, 545 insertions(+), 5 deletions(-)
diff --git a/images/23379351593_0c480537de_q.jpg
b/images/23379351593_0c480537de_q.jpg
new file mode 100644
index 0000000..e004b13
Binary files /dev/null and b/images/23379351593_0c480537de_q.jpg differ
diff --git a/make.bat b/make.bat
index ff4a3f4..77f6d98 100644
--- a/make.bat
+++ b/make.bat
@@ -41,6 +41,7 @@ if "%1" == "help" (
echo. pseudoxml to make pseudoxml-XML files for display purposes
echo. linkcheck to check all external links for integrity
echo. doctest to run all doctests embedded in the documentation if
enabled
+ echo. check to run the Python based linter
goto end
)
@@ -243,4 +244,10 @@ if "%1" == "pseudoxml" (
goto end
)
+if "%1" == "check" (
+ python ext\linter.py %SOURCE%
+ if errorlevel 1 exit /b 1
+ goto end
+)
+
:end
diff --git a/src/api/partitioned-dbs.rst b/src/api/partitioned-dbs.rst
index 04be47b..ab17042 100644
--- a/src/api/partitioned-dbs.rst
+++ b/src/api/partitioned-dbs.rst
@@ -117,6 +117,8 @@ See the guide for
"total_rows": 1
}
+.. _api/partitioned/views:
+
``/db/_partition/partition/_design/design-doc/_view/view-name``
===============================================================
diff --git a/src/conf.py b/src/conf.py
index 76de36b..b71e06f 100644
--- a/src/conf.py
+++ b/src/conf.py
@@ -18,7 +18,7 @@ import sphinx_rtd_theme
sys.path.insert(0, os.path.abspath("../ext"))
-needs_sphinx = "1.2"
+needs_sphinx = "1.5"
extensions = [
"sphinx.ext.todo",
@@ -33,8 +33,8 @@ source_suffix = ".rst"
nitpicky = True
# should be over-written using rebar-inherited settings
-version = "2.3"
-release = "2.3.1"
+version = "3.0"
+release = "3.0.0"
project = u"Apache CouchDB\u00ae"
diff --git a/src/config/indexbuilds.rst b/src/config/indexbuilds.rst
index 51277f4..5a0aad1 100644
--- a/src/config/indexbuilds.rst
+++ b/src/config/indexbuilds.rst
@@ -13,6 +13,8 @@
.. default-domain:: config
.. highlight:: ini
+.. _config/index_builds:
+
===================
Background Indexing
===================
@@ -23,8 +25,6 @@ automatically kicks off background jobs to keep secondary
indexes "warm". The da
responsible for this process is internally known as "ken" and can be
configured using the
following settings.
-.. _config/index_builds:
-
.. config:section:: ken :: Background Index Builds
.. config:option:: batch_channels :: Steady-state build concurrency
diff --git a/src/config/query-servers.rst b/src/config/query-servers.rst
index 4354444..c770227 100644
--- a/src/config/query-servers.rst
+++ b/src/config/query-servers.rst
@@ -188,6 +188,8 @@ Native Erlang Query Server
Additional examples are on the `[email protected] mailing list
<https://lists.apache.org/thread.html/9b5f2837bd32189385bb82eee44aec243f2ecacc6e907ffe0e1e03d3@1360091211@%3Cuser.couchdb.apache.org%3E>`_.
+.. _config/search:
+
Search
======
diff --git a/src/whatsnew/3.0.rst b/src/whatsnew/3.0.rst
new file mode 100644
index 0000000..c7f9cf7
--- /dev/null
+++ b/src/whatsnew/3.0.rst
@@ -0,0 +1,528 @@
+.. 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/3.0.x:
+
+============
+3.0.x Branch
+============
+
+.. contents::
+ :depth: 1
+ :local:
+
+.. _release/3.0.x/upgrade:
+
+Upgrade Notes
+=============
+
+* :ghissue:`2228`: The default maximum document size has been reduced to 8MB.
This means
+ that databases with larger documents will not be able to replicate into
CouchDB 3.0
+ correctly without modification. This change has been made in preparation for
+ anticipated hard upper limits on document size imposed by CouchDB 4.0. For
3.x,
+ the max document size setting can be relaxed via the ``[couchdb]
max_document_size``
+ config setting.
+
+* :ghissue:`2228`: The default database sharding factor ``q`` has been reduced
to 2 by
+ default. This, combined with automated database resharding (see below), is a
better
+ starting place for new CouchDB databases. As in CouchDB 2.x, specify
``?q=#`` to
+ change the value upon database creation if desired. The default can be
changed
+ via the config ``[cluster] q`` setting.
+
+* :ghissue:`1523`, :ghissue:`2092`, :ghissue:`2336`: The "node-local" HTTP
interface,
+ by default exposed on port 5986, has been removed. All functionality
previously
+ available at that port is now available on the main, clustered interface (by
default,
+ port 5984). Examples:
+
+ .. code-block:: javascript
+
+ GET /_node/{nodename}/_stats
+ GET /_node/{nodename}/_system
+ GET /_node/{nodename}/_restart
+ GET /_node/{nodename}/_all_dbs
+ GET /_node/{nodename}/_uuids
+ GET /_node/{nodename}/_config
+ GET /_node/{nodename}/_config/couchdb/uuid
+ GET /_node/{nodename}/_nodes/_changes?include_docs=true
+ GET /_node/{nodename}/{db}/{ddoc}/_info
+ PUT /_node/{nodename}/_dbs/{dbname}
+
+ ...and so on. Documentation has been updated to reflect this change.
**[TODO]**
+
+* :ghissue:`2389`: CouchDB 3.0 now requires a server admin user to be defined
at
+ startup, or will print an error message and exit. (The Admin Party is now
over.)
+
+.. figure:: ../../images/23379351593_0c480537de_q.jpg
+ :align: center
+ :alt: Dizzy the cat with a Santa hat.
+
+ CC-BY-NC 2.0: `hehaden @ Flickr
<https://www.flickr.com/photos/hellie55/23379351593/>`_
+
+* :ghissue:`2339`: All databases are now created by default as admin-only.
That is, the
+ default new database ``_security`` object is now:
+
+ .. code-block:: javascript
+
+ {
+ "members" : { "roles" : [ "_admin" ] },
+ "admins" : { "roles" : [ "_admin" ] }
+ }
+
+ This can be changed after database creation.
+
+* Due to code changes in :ghissue:`2324`, it is not possible to upgrade
transparently from
+ CouchDB 1.x to 3.x. In addition, the ``couchup`` utility has been removed
from CouchDB
+ 3.0 by :ghissue:`2399`:. If you are upgrading from CouchDB 1.x, you must
first upgrade
+ to CouchDB 2.3.1 to convert your database and indexes, using ``couchup`` if
desired.
+ You can then upgrade to CouchDB 3.0. Or, you can start a new CouchDB 3.0
installation
+ and replicate directly from 1.x to 3.0.
+
+* :ghissue:`1833`, :ghissue:`2358`, :ghissue:`1871`, :ghissue:`1857`: CouchDB
3.0 supports
+ running only under the following Erlang/OTP versions:
+
+ * 19.x - "soft" support only. No longer tested, but should work.
+ * 20.x - must be newer than 20.3.8.11 (20.0, 20.1, 20.2 versions all invalid)
+ * 21.x - for 21.2, must be newer than 21.2.3
+ * 22.x - for 22.0, must be newer than 22.0.5
+
+* :ghissue:`1804`: By default, views are limited to return a maximum of 2**28
(268435456)
+ results. This limit can be configured separately for views and partitioned
views via
+ the ``query_limit`` and ``partition_query_limit`` values in the ini file
+ ``[query_server_config]`` section.
+
+Deprecated feature removal
+--------------------------
+
+The following features, deprecated in CouchDB 2.x, have been removed or
replaced in
+CouchDB 3.0:
+
+* :ghissue:`2089`, :ghissue:`2128`, :ghissue:`2251`: Local endpoints for
replication
+ targets, which never functioned as expected in CouchDB 2.x, have been
completely
+ removed. When replicating databases, always specify a full URL for the
source and
+ target. In addition, the node local ``_replicator`` database is no longer
automatically
+ created.
+
+* :ghissue:`2163`: The ``disk_size`` and ``data_size`` fields have been
retired from the
+ database info object returned by ``GET /{db}/``. These were deprecated in
CouchDB 2.x
+ and replaced by the ``sizes`` object, which contains the improved ``file``,
+ ``active`` and ``external`` size metrics. Fauxton has been updated to match.
+
+* :ghissue:`2173`: The ability to submit multiple queries against a view using
+ the :method:`POST` to ``/{db}/_design/{ddoc}/_view/{view}`` with the
+ ``?queries=`` option has been replaced by the new :ref:`queries
+ <api/ddoc/view/multiple_queries>` endpoint. The same is true of the
+ :ref:`_all_docs, _design_docs, and _local_docs <api/db/all_docs>` endpoints.
+ Specify a ``keys`` object when :method:`POST`-ing to these endpoints.
+
+* :ghissue:`2248`: CouchDB externals (``_external/``) have been removed
entirely.
+
+* :ghissue:`2208`: CouchDB no longer supports the ``delayed_commits`` option
in the
+ configuration file. All writes are now full commits. The
``/_ensure_full_commit``
+ API endpoint has been retained (as a no-op) for backwards compatibility with
old
+ CouchDB replicators.
+
+* :ghissue:`2395`: The security object in the ``_users`` database cannot be
edited by
+ default. A setting exists in the configuration file to revert this
behaviour. The
+ ability to override the disable setting is expected to be removed in CouchDB
4.0.
+
+.. _release/3.0.0:
+
+Version 3.0.0
+=============
+
+Features and Enhancements
+-------------------------
+
+.. rst-class:: open
+
+* :ghissue:`1789`: :ref:`User-defined partitioned databases <partitioned-dbs>`.
+
+ These special databases support user-driven placement of documents into the
same
+ shard range. :ref:`JavaScript views <api/partitioned/views>` and **[TODO
LINK]** Mango
+ indexes have specific optimizations for partitioned databases as well.
+
+ Two tweakable configuration parameters exist:
+
+ * :ghissue:`1842`: Partition size limits. By default, each partition is
limited
+ to 10 GiB.
+ * :ghissue:`1684`: Partitioned database support can be disabled via feature
+ flag in ``default.ini``.
+
+* :ghissue:`1972`, :ghissue:`2012`: :ref:`Automated shard splitting
+ <cluster/sharding/splitting_shards>`. Databases can now be re-sharded
*while online*
+ to increase the ``q`` factor to a larger number. This can be configured to
+ require specific node and range parameters upon execution.
+
+* :ghissue:`1910`: :ref:`Automatic background indexing <config/index_builds>`,
+ internally known as ``ken``. This subsystem ensures secondary indexes (such
+ as JavaScript, Mango, and text search) are kept up to date, without requiring
+ an external query to trigger building them. Many configuration parameters are
+ available.
+
+* :ghissue:`1904`: Completely rewritten :ref:`automatic compaction daemon
+ <compact/auto>`, internally known as ``smoosh``. This subsystem automatically
+ triggers background compaction jobs for both databases and views, based on
+ :ref:`configurable thresholds <config/database_compaction>`.
+
+* :ghissue:`1889`, :ghissue:`2408`: New IO Queue subsystem implementation.
+ This is :ref:`highly configurable and well-documented <config/ioq>`.
+
+* :ghissue:`2037`: Dreyfus, the CouchDB side of the Lucene-powered search
solution, is now
+ shipped with CouchDB. When one or more Clouseau Java nodes are joined to the
cluster,
+ text-based indexes can be enabled in CouchDB. It is recommended to have as
many Clouseau
+ nodes as you have CouchDB nodes. Search is advertised in the feature list
present at
+ ``GET /`` if configured correctly (:ghissue:`2206`). :ref:`Configuration
+ <config/search>` and **[TODO]** installation documentation is available.
+
+* :ghissue:`2411`: The ``/_up`` endpoint no longer requires authentication,
even when
+ ``require_valid_user`` is ``true``.
+
+* :ghissue:`2392`: A new ``_metrics`` role can be given to a user. This allows
that
+ user access only to the ``/_node/{node}/_stats`` and
``/_node/{node}/_system``
+ endpoints.
+
+* :ghissue:`1912`: A new alternative ``systemd-journald logging`` backend has
been added,
+ and can be enabled through the ini file. The new backend does not include
CouchDB's
+ microsecond-accurate timestamps, and uses the ``sd-daemon(3)`` logging
levels.
+
+* :ghissue:`2296`, :ghissue:`1977`: If the configuration file setting
``[couchdb]``
+ ``single_node`` is set to ``true``, CouchDB will automatically create the
system
+ databases on startup if they are not present.
+
+* :ghissue:`2338`, :ghissue:`2343`: :method:`POST` request to CouchDB views
and the
+ ``/{db}/_all_docs``, ``/{db}/_local_docs`` and ``/{db}/_design_docs``
endpoints now
+ support the same functionality as :method:`GET`. Parameters are passed in
the body as a
+ JSON object, rather than in the URL when using :method:`POST`.
+
+* :ghissue:`2292`: The ``_scheduler/docs`` and ``_scheduler/info`` endpoints
now return
+ detailed replication stats for running and pending jobs.
+
+* :ghissue:`2282`, :ghissue:`2272`, :ghissue:`2290`: CouchDB now supports
specifying
+ separate proxies for both the ``source`` and ``target`` in a replication via
+ ``source_proxy`` and ``target_proxy`` keys. The :ref:`API documentation
+ <api/server/replicate>` has been updated.
+
+* :ghissue:`2240`: Headers are now returned from the ``/{db}/_changes`` feed
+ immediately, even when there are no changes available. This avoids client
+ blocking.
+
+* :ghissue:`2005`, :ghissue:`2006`: The name of any node can now be retrieved
through
+ the new API endpoint ``GET /_node/_local``.
+
+* :ghissue:`1766`: Timeouts for requests, ``all_docs``, attachments, views, and
+ partitioned view requests can all be specified separately in the ini file
under
+ the ``[fabric]`` section. See ``default.ini`` for more detail.
+
+* :ghissue:`1963`: Metrics are now kept on the number of partition and global
view
+ queries, along with the number of timeouts that occur.
+
+* :ghissue:`2452`: A new configuration field ``[couch_httpd_auth] same_site``
has
+ been added to set the value of the CouchDB auth cookie's ``SameSite``
attribute.
+ It may be necessary to set this to ``strict`` for compatibility with future
+ versions of Google Chrome. If CouchDB CORS support is enabled, set this to
+ ``None``.
+
+Performance
+-----------
+
+.. rst-class:: open
+
+* :ghissue:`2277`: The ``couch_server`` process has been highly optimized,
supporting
+ significantly more load than before.
+
+* :ghissue:`2360`: It is now possible to make the rexi interface's unacked
message
+ limit configurable. A new, more optimized default (5, lowered from 10) has
been set.
+ This results in a ~50% improvement on view queries on large clusters with
``q ≥ 8``.
+
+* :ghissue:`2280`: Connection sharing for replication now functions correctly
when
+ replicating through a forward proxy. Closes :ghissue:`2271`.
+
+* :ghissue:`2195`, :ghissue:`2207`: Metrics aggregation now supports CouchDB
systems
+ that sleep or hibernate, ensuring that on wakeup does not trigger thousands
of
+ unnecessary function calls.
+
+* :ghissue:`1795`: Avoid calling ``fabric:update_docs`` with empty doc lists.
+
+Bugfixes
+--------
+
+.. rst-class:: open
+
+* :ghissue:`1752`, :ghissue:`2398`, :ghissue:`1803`: The cluster setup wizard
now ensures
+ a consistent UUID and http secret across all nodes in a cluster. CouchDB
admin passwords
+ are also synced when the cluster setup wizard is used. This prevents being
logged out
+ when using Fauxton as a server admin user through a load balancer.
+
+* :ghissue:`2388`: A compatibility change has been made to support replication
with
+ future databases containing per-document access control fields.
+
+* :ghissue:`2379`: Any replicator error messages will provide an object in the
response,
+ or null, but never a string.
+
+* :ghissue:`2244`, :ghissue:`2310`: CouchDB will no longer send more data than
is
+ requested when retrieving partial attachment data blocks.
+
+* :ghissue:`2138`: Manual operator updates to a database's shard map will not
+ corrupt additional database properties, such as partitioning values.
+
+* :ghissue:`1877`: The ``_purge`` and ``_purged_infos_limit`` endpoints are now
+ correctly restricted to server admin only.
+
+* :ghissue:`1794`: The minimum purge sequence value for a database is now
+ gathered without a clustered ``_all_docs`` lookup.
+
+* :ghissue:`2351`: A timeout case clause in ``fabric_db_info`` has been
normalised
+ to match other case clauses.
+
+* :ghissue:`1897`: The ``/{db}/_bulk_docs`` endpoint now correctly catches
invalid
+ (*i.e.*, non-hexadecimal) ``_rev_`` values and responds with a 400 error.
+
+* :ghissue:`2321`: CouchDB no longer requires Basic auth credentials to reach
the
+ ``/_session`` endpoint for login, even when ``require_valid_user`` is
enabled.
+
+* :ghissue:`2295`: CouchDB no longer marks a job as failed permanently if the
+ internal doc processor crashes.
+
+* :ghissue:`2178`: View compaction files are now removed on view cleanup.
+
+* :ghissue:`2179`: The error message logged when CouchDB does not have a
``_users``
+ database is now less scary.
+
+* :ghissue:`2153`: CouchDB no longer may return a ``badmatch`` error when
querying
+ ``all_docs`` with a passed ``keys`` array.
+
+* :ghissue:`2137`: If search is not available, return a ``400`` instead of
``500``
+ status code.
+
+* :ghissue:`2077`: Any failed ``fsync(2)`` calls are now correctly raised to
avoid
+ data corruption arising from retry attempts.
+
+* :ghissue:`2027`: Handle epoch mismatch when duplicate UUIDs are created
through
+ invalid operator intervention.
+
+* :ghissue:`2019`: If a database is deleted and re-created while internal
cluster
+ replication is still active, CouchDB will no longer retry to delete it
continuously.
+
+* :ghissue:`2003`, :ghissue:`2438`: CouchDB will no longer automatically reset
an index
+ file if any attempt to read its header fails (such as when the couch_file
process
+ terminates unexpectedly). CouchDB now also handles the case when a view
file lacks a
+ proper header.
+
+* :ghissue:`1983`: Improve database "external" size calcuation to be more
precise.
+
+* :ghissue:`1971`: Correctly compare ETags using weak comparison methods to
support
+ `W/` prefix added by some load balancer configurations.
+
+* :ghissue:`1901`: Invalid revision specified for a document update will no
longer result
+ in a ``badarg`` crash.
+
+* :ghissue:`1845`: The ``end_time`` field in ``/_replicate`` now correctly
converts time
+ to UTC.
+
+* :ghissue:`1824`: ``rexi`` stream workers are now cleaned up when the
coordinator process
+ is killed, such as when the ddoc cache is refreshed.
+
+* :ghissue:`1770`: Invalid database ``_security`` objects no longer return a
+ ``function_clause`` error and stack trace.
+
+* :ghissue:`2412`: Mango execution stats now correctly count documents read
which weren't
+ followed by a match within a given shard.
+
+* :ghissue:`2393`, :ghissue:`2143`: It is now possible to override the query
server
+ environment variables ``COUCHDB_QUERY_SERVER_JAVASCRIPT`` and
+ ``COUCHDB_QUERY_SERVER_COFFEESCRIPT`` without overwriting the
+ ``couchdb``/``couchdb.cmd`` startup scripts.
+
+* :ghissue:`2426`, :ghissue:`2415`: The replicator now better handles the
situation where
+ design document writes to the target fail when replicating with non-admin
credentials.
+
+* :ghissue:`2444`, :ghissue:`2413`: Replicator error messages are now
significantly
+ improved, reducing ``function_clause`` responses.
+
+* :ghissue:`2454`: The replication auth session plugin now ignores other
cookies it may
+ receive without logging an error.
+
+* :ghissue:`2458`: Partitioned queries and dreyfus search functions no longer
fail
+ if there is a single failed node or rexi worker error.
+
+Other
+-----
+
+The 3.0.0 release also includes the following minor improvements:
+
+.. rst-class:: open
+
+* :ghissue:`2034`,:ghissue:`2416`: The path to the Fauxton installation can
now be
+ specified via the ``COUCHDB_FAUXTON_DOCROOT`` environment variable.
+
+* :ghissue:`2447`: Replication stats are both persisted when jobs are
re-created, as well
+ as properly handled when bulk document batches are split.
+
+* :ghissue:`2410`, :ghissue:`2390`, :ghissue:`1913`: Many metrics were added
for Mango
+ use, including counts of unindexed queries, invalid index queries, docs
examined that
+ do and don't meet cluster quorum, query time, etc.
+
+* :ghissue:`2152`: CouchDB can now be started via a symlink to the binary on
UNIX-based
+ platforms.
+
+* :ghissue:`1844`: A new internal API has been added to write custom Erlang
+ request-level metrics reporting plugins.
+
+* :ghissue:`2293`, :ghissue:`1095`: The ``-args_file``, ``-config`` and
``-couch_ini``
+ parameters may now be overridden via the ``COUCHDB_INI_FILES`` environment
variable
+ on UNIX-based systems.
+
+* :ghissue:`2352`: The ``remsh`` utility now searches for the Erlang cookie in
+ ``ERL_FLAGS`` as well as ``vm.args``.
+
+* :ghissue:`2324`: All traces of the (never fully functional) view-based
``_changes``
+ feed have been expunged from the code base.
+
+* :ghissue:`2337`: The md5 shim (introduced to support FIPS-compliance) is now
+ used consistently throughout the code base.
+
+* :ghissue:`2270`: Negative and non-integer ``heartbeat`` values now return 400
+ Bad Request.
+
+* :ghissue:`2268`: When rescheduling jobs, CouchDB now stops sufficient
running jobs
+ to make room for the pending jobs.
+
+* :ghissue:`2186`: CouchDB plugin writers have a new field in which endpoint
+ credentials may be stashed for later use.
+
+* :ghissue:`2183`: ``dev/run`` now supports an ``--extra-args`` flag to modify
the
+ Erlang runtime environment during development.
+
+* :ghissue:`2105`: ``dev/run`` no longer fails on unexpected remote end
connection
+ close during cluster setup.
+
+* :ghissue:`2118`: Improve ``couch_epi`` process replacement mechanism using
map
+ childspecs functionality in modern Erlang.
+
+* :ghissue:`2111`: When more than ``MaxJobs`` replication jobs are defined,
CouchDB
+ now correctly handles job rotation when some jobs crash.
+
+* :ghissue:`2020`: Fix full ring assertion in fabric stream shard replacements
+
+* :ghissue:`1925`: Support list for docid when using ``couch_db:purge_docs/3``.
+
+* :ghissue:`1642`: ``io_priority`` is now set properly on view update and
compaction
+ processes.
+
+* :ghissue:`1865`: Purge now supports >100 document IDs in a single request.
+
+* :ghissue:`1861`: The ``vm.args`` file has improved commentary.
+
+* :ghissue:`1808`: Pass document update type for additional checks in
+ ``before_doc_update``.
+
+* :ghissue:`1835`: Module lists are no longer hardcoded in ``.app`` files.
+
+* :ghissue:`1798`, :ghissue:`1933`: Multiple compilation warnings were
eliminated.
+
+* :ghissue:`1826`: The ``couch_replicator_manager`` shim has been fully
removed.
+
+* :ghissue:`1820`: After restarting CouchDB, JS and Elixir tests now wait up
to 30s for
+ it to be ready before timing out.
+
+* :ghissue:`1800`: ``make elixir`` supports specifying individual tests to run
with
+ ``tests=``.
+
+* :ghissue:`1805`: ``dev/run`` supports ``--with-haproxy`` again.
+
+* :ghissue:`1774`: ``dev/run`` now supports more than 3 nodes.
+
+* :ghissue:`1779`: Refactor Elixir test suite initialization.
+
+* :ghissue:`1769`: The Elixir test suite uses Credo for static analysis.
+
+* :ghissue:`1776`: All Python code is now formatted using `Python black`_.
+
+* :ghissue:`1786`: ``dev/run``: do not create needless ``dev/data/`` directory.
+
+* Fauxton updated to v1.2.2, which includes:
+
+ * TODO
+
+* Improved test cases:
+
+ * Many, many test race conditions and bugs have been removed (PR list too
long to
+ include here!)
+
+ * More test cases were ported to Elixir, including:
+
+ * Cluster with and without quorum tests (:ghissue:`1812`)
+ * ``delayed_commits`` (:ghissue:`1796`)
+ * ``multiple_rows`` (:ghissue:`1958`)
+ * ``invalid_docids`` (:ghissue:`1968`)
+ * ``replication`` (:ghissue:`2090`)
+ * All ``attachment_*`` tests (:ghissue:`1999`)
+ * ``copy_doc`` (:ghissue:`2000`)
+ * ``attachments`` (:ghissue:`1953`)
+ * ``erlang_views`` (:ghissue:`2237`)
+ * ``auth_cache``, ``cookie_auth``, ``lorem*``, ``multiple_rows``,
``users_db``,
+ ``utf8`` (:ghissue:`2394`)
+
+ * :ghissue:`2431`: ``chttpd_purge_tests`` have been improved in light of CI
failures.
+
+ * :ghissue:`2432`: Address flaky test failure on ``t_invalid_view/1``.
+
+ * :ghissue:`2363`: Elixir tests now run against a single node cluster, in
line with
+ the original design of the JavaScript test suite. This is a permanent
change.
+
+ * :ghissue:`1893`: Add "w:3" for lots of doc tests.
+
+ * :ghissue:`1939`, :ghissue:`1931`: Multiple fixes to improve support in
constrained
+ CI environments.
+ * :ghissue:`2346`: Big-endian support for the ``couch_compress`` tests.
+
+ * :ghissue:`2314`: Do not auto-index when testing ``update=false`` in Mango.
+
+ * :ghissue:`2141`: Fix ``couch_views`` encoding test.
+
+ * :ghissue:`2123`: Timeout added for ``fold_docs-with_different_keys`` test.
+
+ * :ghissue:`2114`: EUnit tests now correctly inherit necessary environment
+ variables.
+
+ * :ghissue:`2122`: `:meck.unload()` is now called automatically after every
test.
+
+ * :ghissue:`2098`: Fix ``cpse_test_purge_replication`` eunit test.
+
+ * :ghissue:`2085`, :ghissue:`2086`: Fix a flaky ``mem3_sync_event_listener``
test.
+
+ * :ghissue:`2084`: Increase timeouts on two slow btree tests.
+
+ * :ghissue:`1960`, :ghissue:`1961`: Fix for
``chttpd_socket_buffer_size_test``.
+
+ * :ghissue:`1922`: Tests added for shard splitting functionality.
+
+ * :ghissue:`1869`: New test added for doc reads with etag ``If-None-Match``
header.
+
+ * :ghissue:`1831`: Re-introduced `cpse_test_purge_seqs` test.
+
+ * :ghissue:`1790`: Reorganise ``couch_flag_config_tests`` into a proper
suite.
+
+ * :ghissue:`1785`: Use ``devclean`` on elixir target for consistency of
Makefile.
+
+* External dependency updates:
+
+ * :ghissue:`1870`: Mochiweb has been updated to 2.19.0.
+
+ * :ghissue:`1938`: Folsom has been updated to 0.8.3.
+
+ * :ghissue:`2001`: ibrowse has been updated to 4.0.1-1.
+
+* A llama! OK, no, not really. If you got this far...thank you for reading.
+
+.. _Python black: https://github.com/ambv/black
+.. _hehaden: https://www.flickr.com/photos/hellie55/23379351593/
diff --git a/src/whatsnew/index.rst b/src/whatsnew/index.rst
index 4272b22..82f2d30 100644
--- a/src/whatsnew/index.rst
+++ b/src/whatsnew/index.rst
@@ -20,6 +20,7 @@ Release Notes
:glob:
:maxdepth: 2
+ 3.0
2.3
2.2
2.1