summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lehnardt <jan@apache.org>2022-11-03 15:16:18 +0100
committerNick Vatamaniuc <nickva@users.noreply.github.com>2022-12-15 12:49:45 -0500
commit7ef834d273360079937213c09c8dbba9f32f7bb2 (patch)
tree555a69834149a409dae205ebe4754ebae0a93a44
parent99a8f666c8b9d1f5a6ebbb09c83e59e1916c0205 (diff)
downloadcouchdb-7ef834d273360079937213c09c8dbba9f32f7bb2.tar.gz
docs: add 3.3.0 relese notes
-rw-r--r--src/docs/src/conf.py4
-rw-r--r--src/docs/src/whatsnew/3.3.rst371
-rw-r--r--src/docs/src/whatsnew/index.rst1
3 files changed, 374 insertions, 2 deletions
diff --git a/src/docs/src/conf.py b/src/docs/src/conf.py
index 05d3a4258..f8cce94a9 100644
--- a/src/docs/src/conf.py
+++ b/src/docs/src/conf.py
@@ -30,8 +30,8 @@ extensions = [
nitpicky = True
# should be over-written using rebar-inherited settings
-version = "3.2"
-release = "3.2.0"
+version = "3.3"
+release = "3.3.0"
project = "Apache CouchDB\u00ae"
diff --git a/src/docs/src/whatsnew/3.3.rst b/src/docs/src/whatsnew/3.3.rst
new file mode 100644
index 000000000..2496ab732
--- /dev/null
+++ b/src/docs/src/whatsnew/3.3.rst
@@ -0,0 +1,371 @@
+.. 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.3.x:
+
+============
+3.3.x Branch
+============
+
+.. contents::
+ :depth: 1
+ :local:
+
+.. _release/3.3.0:
+
+Version 3.3.0
+=============
+
+Features and Enhancements
+-------------------------
+
+* :ghissue:`3766`, :ghissue:`3970`, :ghissue:`3972`, :ghissue:`4093`,
+ :ghissue:`4102`, :ghissue:`4104`, :ghissue:`4110`, :ghissue:`4111`,
+ :ghissue:`4114`, :ghissue:`4245`, :ghissue:`4246`:, :ghissue:`4266`: Add
+ ``smoosh`` queue persistence. This allows resuming ``smoosh`` operations
+ after a node restart. This is disabled by default and can be enabled with
+ ``[smoosh] persist = true``. Optimise ``smoosh`` operations and increase
+ test coverage to 90%.
+
+* :ghissue:`3798`: Add ``libicu`` version and collation algorithm version to
+ ``/_node/_local/_versions``.
+
+* :ghissue:`3837`: The Erlang source tree is now auto-formatted with ``erlfmt``.
+
+* :ghissue:`3845`: Clean up the ``couch_ejson_compare`` C-module and squash
+ Microsoft compiler warnings.
+
+* :ghissue:`3832`: Add ``GET`` variant to ``_dbs_info`` endpoint, used to be
+ ``POST`` only.
+
+* :ghissue:`3864`: Improve ``erlang_ls`` configuration.
+
+* :ghissue:`3853`: Remove legacy ``ddoc_cache_opener`` ``gen_server`` and
+ speed up event routing.
+
+* :ghissue:`3879`: Remove use of ``ERL_OPTS`` environment variable. All
+ supported Erlang versions now use ``ERL_COMPILER_OPTIONS`` for the same
+ purpose.
+
+* :ghissue:`3883`: Add support for SpiderMonkey 91.
+
+* :ghissue:`3889`: Track ``libicu`` collator versions in the view header.
+
+* :ghissue:`3952`: Make the timeout for receiving requests from attachment
+ writers configurable.
+
+* :ghissue:`3927`: Include index signature in ``_search_info``.
+
+* :ghissue:`3963`: Optimtize key tree stemming by using maps instead of
+ sets. This greatly reduced memory usage for heavily conflicted docs in some
+ situations.
+
+* :ghissue:`3974`: Create new config options in ``[couchdb]`` and ``[smoosh]``
+ sections to enable finer control of compaction logging levels.
+
+* :ghissue:`3983`, :ghissue:`3984`, :ghissue:`3985`, :ghissue:`3987`,
+ :ghissue:`4033`: Add various functions to ``couch_debug`` module.
+
+* :ghissue:`4000`: Ensure ``Object.prototype.toSource()`` is always available.
+
+* :ghissue:`4018`: Update ``jiffy`` to 1.1.1 and ``b64url`` to 1.0.3.
+
+* :ghissue:`4021`: Reduce smoosh compaction log level to ``debug``.
+
+* :ghissue:`4041`: Allow and evaluate nested json claim roles in JWT token.
+
+* :ghissue:`4060`, :ghissue:`4290`: Add support for Erlang 25.
+
+* :ghissue:`4064`: Enable replicating purge requests between nodes. Also avoid
+ applying interactive purges more than once.
+
+* :ghissue:`4069`, :ghissue:`4084`: Drop support for Erlang < 23, update
+ ``vm.args`` settings to match. Review this if you have customized your
+ ``vm.args``.
+
+* :ghissue:`4083`: Support Elixir 13.
+
+* :ghissue:`4085`: Add an option to let ``custodian`` always use ``[cluster] n``
+ value.
+
+* :ghissue:`4095`: Implement ``winning_revs_only`` option for the replicator. It
+ replicates only the winning revisions from the source to the target,
+ effectively discarding conflicts.
+
+* :ghissue:`4135`: Separate search IO from file IO.
+
+* :ghissue:`4140`, :ghissue:`4162`: Upgrade hash algorithm for cookie auth (sha1
+ -> sha256). This introduces a new config setting ``hash_algorithms``. New cookie
+ values are hashed with sha256, sha1 hashes are still accepted. Admins can set
+ this to sha256 only. Sha1 will be disallowed in the next major release. Show
+ supported hash algorithms in ``/_node/_local/_versions`` endpoint.
+
+* :ghissue:`4179`: Don't double-encode changes sequence strings in the
+ replicator.
+
+* :ghissue:`4182`: Explicitly maintain a fully connected cluster. Previously, it
+ was possible for the nodes to disconnect, and for that state to persist until
+ the nodes restarted.
+
+* :ghissue:`4198`: Redact passwords in log file.
+
+* :ghissue:`4243`: Update ``mochiweb`` to 3.1.1.
+
+* :ghissue:`4254`: The ``_dbs_info`` access control is now configured with the
+ ``[couchdb] admin_only_all_dbs`` setting. Defaults to true. This was a
+ leftover from the 3.0.0 release.
+
+* :ghissue:`4264`: ``active`` database sizes is now limited to leaf nodes.
+ Previously, it included intermediate tree nodes, which had the effect that
+ deleting (large) documents did not decrease ``active`` database size. In
+ addition, ``smoosh`` now picks up databases where large documents are
+ deleted for compaction more eagerly, reclaiming the deleted space quicker.
+
+* :ghissue:`4270`: Shard splitting now uses its own ``reshard`` IO priority.
+ It can be configured to be safely run in the background with production
+ loads, or with maximum IO available, if admins prefer quicker progress.
+
+* :ghissue:`4274`: Improve validation of replicator job parameters & move
+ ``_replicator`` VDU design doc to internal BDU.
+
+* :ghissue:`4280`: Add ``CFLAGS`` and ``LDFLAGS`` to ICU build parameters.
+
+* :ghissue:`4284`: Remove all usage of global to avoid potential deadlocks
+ in replication jobs.
+
+* :ghissue:`4287`: Allow ``=`` in config key names.
+
+Performance
+-----------
+
+* :ghissue:`3860`: Add sharding to ``couch_index_server``, similar to
+ :ghissue:`3366`, avoids processing bottlenecks on servers with a lot of
+ concurrent view indexing going on.
+
+* :ghissue:`3891`: Avoid decoding JWT payloads when not necessary.
+
+* :ghissue:`4031`: Default ``[rexi] use_kill_all`` to ``true``. This improves
+ intra-cluster-node messaging. Set to false if you run a cluster with nodes
+ that have a version <3.0.0.
+
+* :ghissue:`4052`: Optimise ``couch_util:reorder_results/2,3``, which speeds up
+ ``_bulk_docs`` and ``_revs_diff``.
+
+* :ghissue:`4055`: Avoid using ``length/1`` guard for ``>0`` or ``==0`` tests in
+ ``couch_key_tree``.
+
+* :ghissue:`4056`: Optimise ``couch_key_tree:find_missing/2``. This speeds up
+ ``_revs_diff``.
+
+* :ghissue:`4059`: Reduce complexity of ``possible_ancestors`` from quadratic to
+ linear. This speeds up working with heavily conflicted documents
+ significantly.
+
+* :ghissue:`4091`: Optimise ``couch_util:to_hex/1``, this speeds up all
+ operations that need to encode a revision id into JSON (this is most
+ operations).
+
+* :ghissue:`4106`: Set ``io_priority`` in all IO paths. Introduces ``system``
+ ``io_priority``.
+
+* :ghissue:`4144`, :ghissue:`4172`: Implement ``_bulk_get`` support for the
+ replicator. Backward compatibility is ensured. This speeds up all
+ replications. Add option to disable new behaviour for legacy setups.
+
+* :ghissue:`4163`: Statistically skip ``_revs_diff`` in the replicator. This
+ improves performance for replications into empty targets.
+
+* :ghissue:`4177`: Remove the long deprecated ``bigcouch 0.4`` change sequence
+ support.
+
+* :ghissue:`4238`: Optimise ``_bulk_get`` endpoint. This speeds up replication
+ of 1M docs by ~2x. Individual ``_bulk_get`` requests are up to 8x faster.
+
+* :ghissue:`3517`: Add experimental fix for reduce performance regression due
+ to expensive repeated AST-transformations on newer SpiderMonkey versions.
+ Set ``COUCHDB_QUERY_SERVER_JAVASCRIPT`` env var to
+ ``COUCHDB_QUERY_SERVER_JAVASCRIPT="/opt/couchdb/bin/couchjs
+ /opt/couchdb/share/server/main-ast-bypass.js"``.
+
+Bugfixes
+--------
+
+* :ghissue:`3817`: Fix undefined function call in ``weatherreport``.
+
+* :ghissue:`3819`: Return ``400`` instead of ``500`` response code for known
+ invalid ``_bulk_docs`` with ``new_edits=false`` request.
+
+* :ghissue:`3861`: Add ``SameSite`` setting when clearing session cookies.
+
+* :ghissue:`3863`: Fix custom TLS distribution for Erlang 20.
+
+* :ghissue:`3870`: Always send all cookie attributes.
+
+* :ghissue:`3886`: Avoid changes feed rewind after shard move with no subsequent
+ db updates.
+
+* :ghissue:`3888`: Make ``_stats`` endpoint resilient against nodes that go
+ offline.
+
+* :ghissue:`3901`: Use db-creation time instead of ``0`` for
+ ``instance_start_time`` to help replicator recognise whether a peer database
+ was deleted and recreated.
+
+* :ghissue:`3909`: Fix ``new_edits:false`` and VDU ``function_clause``.
+
+* :ghissue:`3934`: Fix ``replicated_changes`` typo for purge doc updates.
+
+* :ghissue:`3940`: Ensure the multipart parser always monitors the worker and
+ make sure to wait for attachment uploads before responding.
+
+* :ghissue:`3950`: Ignore responses from timed-out or retried ``ibrowse`` calls.
+
+* :ghissue:`3969`: Fix ``skip`` and ``limit`` for ``_all_dbs`` and
+ ``_dbs_info``.
+
+* :ghissue:`3979`: Correctly respond with a ``500`` code when document updates
+ time out under heavy load.
+
+* :ghissue:`3992`: Show that Search is available if it was available
+ before. Avoid Search availability disappearing just because a Search node was
+ temporarily not available.
+
+* :ghissue:`3993`: Return a ``400`` error when decoding a JWT token fails,
+ rather than crashing and not responding at all.
+
+* :ghissue:`3990`: Prevent creation of ddocs with no name through Mango index
+ creation.
+
+* :ghissue:`4003`: Improve index building during shard splitting.
+
+* :ghissue:`4016`: Fix ``function_clause`` error for replicated changes with a
+ target VDU.
+
+* :ghissue:`4020`: Fix ``maybe_handle_error`` clauses.
+
+* :ghissue:`4037`: Fix ES{256,384,512} support for JWTs.
+
+* :ghissue:`4040`: Handle ``exit(shutdown)`` error in ``chttpd``.
+
+* :ghissue:`4043`: Fix purge request timeouts (5s -> infinity).
+
+* :ghissue:`4146`: The ``devcontainer`` has been updated.
+
+* :ghissue:`4050`: Handle ``all_dbs_active`` in ``fabric_doc_update``.
+
+* :ghissue:`4160`: Return a proper ``400`` error when an invalid object is sent
+ to ``_bulk_get``.
+
+* :ghissue:`4070`: Prevent ``error:function_clause`` in ``check_security/3`` if
+ roles claim is malformed.
+
+* :ghissue:`4075`: Fix ``couch_debug:opened_files*`` functions.
+
+* :ghissue:`4108`: Trim ``X-Auth-CouchDB-Roles`` header after reading.
+
+* :ghissue:`4153`: The ``require_valid_user`` setting is now under ``chttpd``.
+
+* :ghissue:`4161`: Fix ``content-type`` handling in ``_session``.
+
+* :ghissue:`4176`: Fix ``eventsource`` ``_changes`` feed.
+
+* :ghissue:`4197`: Support large (and impractical as-of-yet) ``q`` values. Fix
+ shard open timeouts for ``q > 64``.
+
+* :ghissue:`4199`: Fix spurious unlock in ``close_db_if_idle``.
+
+* :ghissue:`4230`: Avoid refresh messages piling up in prometheus server.
+
+* :ghissue:`4240`: Implement global password hasher process. This fixes a
+ race-condition when setting new admin passwords in quick succession on a
+ multicore server.
+
+* :ghissue:`4261`, :ghissue:`4271`: Clean up stale view checkpoints,
+ improve purge client cleanup logging
+
+* :ghissue:`4272`: Kill all ``couch_server_N`` if ``database_dir`` changes.
+
+Tests
+-----
+
+* :ghissue:`3825`: Eliminate Elixir compiler warnings.
+
+* :ghissue:`3830`: Reduce skipped Elixir integration tests.
+
+* :ghissue:`3890`: Handle ``not_found`` lookups removing ddoc cache key.
+
+* :ghissue:`3892`: Use Debian Stable for CI, add Erlang 24 to CI.
+
+* :ghissue:`3898`: Remove CI support for Ubuntu 16.04.
+
+* :ghissue:`3903`, :ghissue:`3914`: Refactor Jenkins to dynamically generate
+ stages. Drop ``MINIMUM_ERLANG_VERSION`` to 20, drop the packaging
+ ``ERLANG_VERSION`` to 23, add the ``weatherreport-test`` as a build step, and
+ add ``ARM`` and ``POWER`` back into the matrix.
+
+* :ghissue:`3921`:, :ghissue:`3923`: Execute various tests in clean
+ ``database_dir`` to avoid subsequent test flakiness.
+
+* :ghissue:`3968`: Ensure key tree rev stemming does’t take too much memory.
+
+* :ghissue:`3980`: Upgrade Mango test dependency ``nose`` to ``nose`` and fix
+ flaky-on-Windows tests.
+
+* :ghissue:`4006`: Remove CI support for Debian 9.
+
+* :ghissue:`4061`, :ghissue:`4082`: Update PPC CI builder.
+
+* :ghissue:`4096`: Fix flaky ``validate_doc_update`` Elixir test.
+
+* :ghissue:`4123`: Fix ``haproxy.cfg``.
+
+* :ghissue:`4126`: Return a ``400`` response for a single ``new_edits=false``
+ doc update without revision.
+
+* :ghissue:`4129`: Fix ``proxyauth_test`` and removed it from skip list.
+
+* :ghissue:`4132`: Address race condition in ``cpse_incref_decref`` test.
+
+* :ghissue:`4151`: Refactor replication tests to use clustered endpoints.
+
+* :ghissue:`4178`: Add test coverage to prevent junk in ``eventsource``.
+
+* :ghissue:`4188`: Enable eunit coverage for all applications instead of
+ enabling it per-application.
+
+* :ghissue:`4202`: Fix race condition in ddoc cache LRU test.
+
+* :ghissue:`4203`, :ghissue:`4205`: Reduce test log noise.
+
+* :ghissue:`4268`: Improve flaky ``_dbs_info`` test.
+
+Docs
+----
+
+* :ghissue:`4164`: The CouchDB documentation has been moved into the main
+ CouchDB repository.
+
+* :ghissue:`4174`: Update Sphinx to version 5.1.1
+
+* :ghissue:`4170`: Document the ``/_node/_local/_versions`` endpoint.
+
+Builds
+------
+
+* :ghissue:`4097`: Stop publication of nightly packages. They were not used
+ anywhere.
+
+Other
+-----
+
+* Added pumpkin spice to selected endpoints. — Thank you for reading the 3.3.0
+ release notes.
diff --git a/src/docs/src/whatsnew/index.rst b/src/docs/src/whatsnew/index.rst
index 55035121c..bc92f938f 100644
--- a/src/docs/src/whatsnew/index.rst
+++ b/src/docs/src/whatsnew/index.rst
@@ -20,6 +20,7 @@ Release Notes
:glob:
:maxdepth: 2
+ 3.3
3.2
3.1
3.0