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

Reply via email to