diff --git a/images/23379351593_0c480537de_q.jpg b/images/23379351593_0c480537de_q.jpg new file mode 100644 index 00000000..e004b139 Binary files /dev/null and b/images/23379351593_0c480537de_q.jpg differ diff --git a/make.bat b/make.bat index ff4a3f45..77f6d986 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 04be47b8..ab170428 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 76de36b6..b71e06f4 100644 --- a/src/conf.py +++ b/src/conf.py @@ -18,7 +18,7 @@ sys.path.insert(0, os.path.abspath("../ext")) -needs_sphinx = "1.2" +needs_sphinx = "1.5" extensions = [ "sphinx.ext.todo", @@ -33,8 +33,8 @@ 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 51277f48..5a0aad1e 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 43544441..c770227a 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 `users@couchdb.apache.org mailing list `_. +.. _config/search: + Search ====== diff --git a/src/whatsnew/3.0.rst b/src/whatsnew/3.0.rst new file mode 100644 index 00000000..c7f9cf77 --- /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 `_ + +* :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 + ` endpoint. The same is true of the + :ref:`_all_docs, _design_docs, and _local_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 `. + + These special databases support user-driven placement of documents into the same + shard range. :ref:`JavaScript 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 + `. 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 `, + 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 + `, internally known as ``smoosh``. This subsystem automatically + triggers background compaction jobs for both databases and views, based on + :ref:`configurable thresholds `. + +* :ghissue:`1889`, :ghissue:`2408`: New IO Queue subsystem implementation. + This is :ref:`highly configurable and well-documented `. + +* :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 + ` 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 + ` 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 4272b223..82f2d30e 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