This is an automated email from the ASF dual-hosted git repository. jan pushed a commit to branch doc/whats-new-3.4.0 in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit a9aca83f062b89853e777e9168d6e22e7b280299 Author: Jan Lehnardt <[email protected]> AuthorDate: Sat May 25 15:37:03 2024 +0200 catch up with `main` dev --- src/docs/src/experimental.rst | 2 + src/docs/src/whatsnew/3.4.rst | 150 +++++++++++++++++++++++++++++++++++------- 2 files changed, 130 insertions(+), 22 deletions(-) diff --git a/src/docs/src/experimental.rst b/src/docs/src/experimental.rst index 9a977e678..fecfff4e2 100644 --- a/src/docs/src/experimental.rst +++ b/src/docs/src/experimental.rst @@ -37,6 +37,8 @@ sent for everything in /_utils. Then restart CouchDB. +.. _nouveauconfig: + Nouveau Server (new Apache Lucene integration) ============================================== diff --git a/src/docs/src/whatsnew/3.4.rst b/src/docs/src/whatsnew/3.4.rst index eed257122..18f7ce8be 100644 --- a/src/docs/src/whatsnew/3.4.rst +++ b/src/docs/src/whatsnew/3.4.rst @@ -1,4 +1,3 @@ -<<<<<<< HEAD .. 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 @@ -26,6 +25,20 @@ Version 3.4.0 ============= +Breaking Changes +---------------- + +* :ghissue:`5046`: JWT: require valid ``exp`` claim by default + + Users of JWT rightly expect tokens to be considered invalid once they expire. It + is a surprise to some that this requires a change to the default + configuration. In the interest of security we will now require a valid ``exp`` + claim in tokens. Administrators can disable the check by changing + ``required_claims`` back to the empty string. + + We recommend adding ``nbf`` as a required claim if you know your tokens will + include it. + Highlights ---------- @@ -42,8 +55,40 @@ Highlights implementation of Lucene-based full-text search for CouchDB. Please test this thoroughly and report back any issues you might find. - - Installation instructions // TODO LINK - - Report a bug // TODO LINK + - :ref:`Setup instructions <nouveauconfig>` + - :ref:`Usage <ddoc/nouveau>` + - `Report a bug`_. + +.. _Report a bug: https://github.com/apache/couchdb/issues/new/choose + +* :ghissue:`4627`: Add `QuickJS`_ as a JavaScript engine option. + +.. _QuickJS: https://bellard.org/quickjs/` + + Advantages over SpiderMonkey: + + - significantly smaller and easier to integrate codebase. We're using ~6 + C files vs 700+ SM91 C++ files. + - Built with Apache CouchDB as opposed having to maintain a separate + SpiderMonkey package for OSs that don’t support it + (\*cough*RedHat9\*cough\*). + - Better sandboxing support. + - Preliminary test results show multiple performance improvements. + + - 4x faster than SpiderMonkey 1.8.5. + - 5x faster than SpiderMonkey 91. + - 6x reduced memory usage per ``couchjs`` process (5MB vs 30MB). + + - Allows compiling JavaScript bytecode ahead of time. + - QuickJS can be built alongside SpiderMonkey and toggled on/off at runtime:: + + ./configure --dev --js-engine=quickjs + + - This makes it the default engine. But SpiderMonkey can still be set in the + config option:: + + [couchdb] + js_engine = spidermonkey | quickjs * :ghissue:`4570`, :ghissue:`4578`, :ghissue:`4576`: Adopt xxHash in favour of md5 for ``couch_file`` checksums and ETag calculation. 30% performance @@ -66,11 +111,28 @@ Highlights * :ghissue:`4847`: Require auth for ``_replicate`` endpoint. This continues the 3.x closed-by-default design goal. -* Many small small performance improvements, see Performance section // TODO LINK +* Many small small performance improvements, see :ref:`the Performance + section <performance430>`. Features and Enhancements ------------------------- +* :ghissue:`5069`: Update Fauxton to v1.3.1. +* :ghissue:`5067`: Support Erlang 27. +* :ghissue:`5053`: Use the built-in ``crypto:pbkdf2_hmac`` function. +* :ghissue:`5036`: Remove ``replication_job_supervisor``. +* :ghissue:`5035`: Modernise ``couch_replicator_supervisor``. +* :ghissue:`5019`: Remove unused build files. +* :ghissue:`5017`: Remove unused ``boot_dev_cluster.sh``. +* :ghissue:`5014`: Add Couch Scanner module. +* :ghissue:`5013`: Improve dist diagnostics. +* :ghissue:`4990`: Add ``dbname`` to mango exec stats. +* :ghissue:`4987`: Replace ``khash`` with maps in ``ddoc_cache_lru``. +* :ghissue:`4984`: Fabric: switch to maps for view rows. +* :ghissue:`4979`: Git ignore top level ``clouseau`` directory. +* :ghissue:`4977`: Replace ``khash`` with maps in ``couch_event_server``. +* :ghissue:`4976`: Add metrics for fast vs slow password hashing. +* :ghissue:`4965`: Handle multiple response copies for ``_purged_infos`` API. * :ghissue:`4878`: Add an option to scrub some sensitive headers from external json. * :ghissue:`4834`: Wait for newly set admin creds to be hashed in setup. @@ -113,14 +175,17 @@ Features and Enhancements * :ghissue:`5046`: JWT: require valid `exp` claim by default * :ghissue:`5065`: Update Fauxton UI to version v1.3.1 +.. _performance430: + Performance ----------- +* :ghissue:`5037`: Optimise ``fabric:all_dbs()``. +* :ghissue:`4911`: Optimise and clean up ``couch_multidb_changes``. * :ghissue:`4852`: Optimise ``_active_tasks``. -* :ghissue:`4811`: Prevent delayed opener error from crashing index servers. * :ghissue:`4786`, :ghissue:`4789`: Add extra timing stats for ``couch_js`` engine commands. -* :ghissue:`4679`: Fix multipart parse “attachment longer than expected” +* :ghissue:`4679`: Fix multipart parse ``attachment longer than expected`` error. * :ghissue:`4672`: Remove ``folsom`` and reimplement required functionality with new Erlang/OTP primitives resulting in up to 19x faster histogram @@ -133,7 +198,6 @@ Performance * :ghissue:`4598`: Speed up internal replicator. * :ghissue:`4507`, :ghissue:`4525`: Add more prometheus metrics. * :ghissue:`4505`: Treat JavaScript internal errors as fatal. -* :ghissue:`4503`: Add ``error_info`` clause for ``410 Gone``. * :ghissue:`4494`: Treat single-element keys as key. * :ghissue:`4473`: Avoid re-compiling filter view functions. * :ghissue:`4401`: Enforce doc ids ``_changes`` filter optimisation limit and @@ -143,8 +207,27 @@ Performance Bugfixes -------- +* :ghissue:`5068`: Fix flakiness in ``fabric_bench``. +* :ghissue:`5066`: Handle multiple ``Set-Cookie`` headers in replicator session + plugin. +* :ghissue:`5060`: Cleanup a few clauses in ``fabric_view_changes``. +* :ghissue:`5030`: Always commit if we upgrade 2.x view files. Fixes + misleading ``wrong signature`` error. +* :ghissue:`5025`: Fix ``seedlist`` to not return duplicate json keys. +* :ghissue:`5008`: Fix case clause error in replicator ``_scheduler/docs`` + response. +* :ghissue:`5000`: Remove repetitive word in source commends (5000!). +* :ghissue:`4962`: Make multidb changes shard map aware. +* :ghissue:`4958`: Mango: use rolling execution statistics. +* :ghissue:`4921`: Make sure to reply to ``couch_index_server`` clients. +* :ghissue:`4910`: ``couch_passwords:verify`` should always return false for + bad inputs. +* :ghissue:`4908`: Mango: communicate rows read for global stats collection. +* :ghissue:`4906`: Flush ``chttpd_db`` monitor refs on demonitor. +* :ghissue:`4904`: Git ignore all .hypothesis directories. * :ghissue:`4887`: Look up search node name in config for weatherreport. * :ghissue:`4837`: Fix update bug in ``ets_lru``. +* :ghissue:`4811`: Prevent delayed opener error from crashing index servers. * :ghissue:`4794`: Fix incorrect raising of ``database_does_not_exist`` error. * :ghissue:`4784`: Fix parsing of node name from ``ERL_FLAGS1`` in ``remsh``. @@ -152,7 +235,8 @@ Bugfixes duplication of paginated text results. * :ghissue:`4761`: Fix badrecord error when replicator is logging http usage. * :ghissue:`4759`: TLS: use HTTP rules for hostname verification. -* :ghissue:`4758`: Remove sensitive headers from the mochiweb request in pdict. +* :ghissue:`4758`: Remove sensitive headers from the ``mochiweb`` request + in ``pdict``. * :ghissue:`4751`: Mango: correct behaviour of ``fields`` on ``_explain``. * :ghissue:`4722`: Fix badmatch error when purge requests time out. * :ghissue:`4716`: Fix pending count for reverse changes feed. @@ -178,6 +262,7 @@ Bugfixes * :ghissue:`4514`: GET invalid path under ``_index`` should not cause 500 response. * :ghissue:`4509`: Make ``remsh`` work with quoted cookie. +* :ghissue:`4503`: Add ``error_info`` clause for ``410 Gone``. * :ghissue:`4491`: Fix ``couch_index`` to avoid crashes under certain conditions. * :ghissue:`4485`: Catch and log any error from ``mem3:local_shards`` in @@ -197,6 +282,27 @@ Bugfixes Tests ----- +* :ghissue:`5054`: Update a few deps and improve CI. +* :ghissue:`5050`: Update CI OSes. +* :ghissue:`5048`: Update CI Erlang versions. +* :ghissue:`5040`: Fix invalid call to ``exit/2`` in ``couch_server``. +* :ghissue:`5039`: Improve fabric ``all_dbs`` test. +* :ghissue:`5024`: Fix flaky ``_changes`` async test. +* :ghissue:`4982`: Fix flaky password hashing test. +* :ghissue:`4980`: Fix password test timeout. +* :ghissue:`4973`: Handling node number configuration in ``dev/run``. +* :ghissue:`4959`: Enable Clouseau for more platforms. +* :ghissue:`4953`: Improve retries in dev/run cluster setup. +* :ghissue:`4947`: Add tests for ``_changes`` endpoint. +* :ghissue:`4938`: Add tests for ``_changes`` with different parameters. +* :ghissue:`4903`: Add extra rev tree changes tests. +* :ghissue:`4902`: Fix flaky tests by increasing timeout. +* :ghissue:`4900`: More flaky fixes for cluster setup. +* :ghissue:`4899`: Reduce EUnit log noise. +* :ghissue:`4898`: Simplify ``couch_changes_tests.erl`` using macro + ``?TDEF_FE``. +* :ghissue:`4893`: Relax restriction on ``[admins]`` in dev ``local.ini``. +* :ghissue:`4889`: Do not use admin party for integration tests. * :ghissue:`4873`: Fix test for `text` index creation. * :ghissue:`4863`: Fix flaky ``users_db_security`` test. * :ghissue:`4808`: Fix flaky ``couch_stream`` test. @@ -218,6 +324,20 @@ Tests Docs ---- +* :ghissue:`5063`: Fix duplicate keys in find query. +* :ghissue:`5045`: Create Python ``virtualenv`` on Windows for docs. +* :ghissue:`5038`: Fix small detail about conflicts in Overview section. +* :ghissue:`4999`: Change server instance to cluster for UUID docs. +* :ghissue:`4955`: Revamp the installation instructions for FreeBSD. +* :ghissue:`4951`: Add extension for copying code blocks with just one click. +* :ghissue:`4950`: Improve changes feed API documentation. +* :ghissue:`4948`: Update Sphinx package version to 7.2.6. +* :ghissue:`4946`: Update Sphinx/RTD dependencies. +* :ghissue:`4942`: Fix invalid JSON in ``_db_updates`` example. +* :ghissue:`4940`: Re-wrote snap installation guide lines for 3.3. +* :ghissue:`4933`: Set docs version numbers dynamically from file. +* :ghissue:`4928`: Add missing installation OSes for convenience binaries. +* :ghissue:`4925`: Break long lines for better readability within tables. * :ghissue:`4774`: Amend description of ``use_index`` on ``/{db}/_find``. * :ghissue:`4743`: Ban the laster monster. * :ghissue:`4684`: Add ``_design_docs/queries`` and @@ -237,18 +357,4 @@ Builds Other ----- -Breaking Changes -================ - -* :ghissue:`5046`: JWT: require valid `exp` claim by default - - Users of JWT rightly expect tokens to be considered invalid once they expire. It - is a surprise to some that this requires a change to the default - configuration. In the interest of security we will now require a valid `exp` - claim in tokens. Administrators can disable the check by changing - `required_claims` back to the empty string. - - We recommend adding `nbf` as a required claim if you know your tokens will - include it. - What’s new, Scooby-Doo?
