You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ro...@apache.org on 2023/02/28 08:19:18 UTC

[couchdb] branch couchdb-deno updated (b11dd7b3a -> 6ca996346)

This is an automated email from the ASF dual-hosted git repository.

ronny pushed a change to branch couchdb-deno
in repository https://gitbox.apache.org/repos/asf/couchdb.git


 discard b11dd7b3a Deno Test
 discard 1f608e8e9 Format config files
     add 46d585e6f chore: configurable ICU locations
     add fb5ade222 Format config files
     add f13ceb46c Improve validation of replicator job parameters
     add 4530f8e1f Remove all usage of global
     add 214b564e9 Add debug logs to smoosh test
     add 958d05310 Increase ddoc_cache test timeouts
     add eff331c9f Allow = in config key names
     add 5c5016e7d Fix unbound variable warning (#4289)
     add 28c3ccc08 Ensure prevent_overlapping_partitions stays false in Erlang 25+
     add 33a5be503 Fix flaky checkpointing smoosh test
     add 5910faadc Fix a few more flaky smoosh tests
     add e02613e01 Add note on how to configure replicaton backoff (#4299)
     add 641586116 Fix rendering of inline literal with withespaces (#4301)
     add 99a8f666c fix(3517): super-simplistic fix to avoid costly AST transforms when t… (#4292)
     add 7ef834d27 docs: add 3.3.0 relese notes
     add be1d36a01 Update Sphinx to 5.3.0
     add ebd7ce2e9 Show version of spidermonkey runtime in couchjs (#4262)
     add 23a2d85e5 Update 3.3 release notes.
     add 9ac1b95fa Bump Fauxton to v1.2.9
     add fb76d3756 Bump version to 3.3.0
     add 8d4c62ed3 Ensure we use the chttpd vs httpd section in fix_uri
     add 16807eca2 Return back to allowing offline configure and make release
     add bfd8d55b3 Revert jiffy to CouchDB-1.0.9-2 to unblock the 3.3 release
     add b5da5b66b Reuse installed rebar and rebar3 for mix
     add 783c54e3a Write relax-message to standard output on Windows (#4317)
     add e6b1be700 Ignore built win binaries (#4323)
     add 088cb3ffe Move elixir source checks to a separate step
     add 1c214267c Ignore built win binaries 2 (#4329)
     add 9aee170be Fix {eaddrnotavail} in elixir tests under Windows
     add ab33d84b2 Fix full CI build
     add 4d56d354c Update release notes for 3.3.0-RC2
     add f6ddbe24c Fix documentation to reflect default_security change
     add 8d1479d68 Update Erlang versions
     add f439d4ec2 Update PR template (#4338)
     add 2c1ca1116 fix undef when parsing replication doc body
     add 8e47e7161 Merge pull request #4343 from apache/fix-undef-replication-body-parse
     add f8d489f31 Add test coverage for replicator user_ctx parser
     add d524ddb4f add find_bugs makefile target for undefined functions
     add 33ee2164e Merge pull request #4346 from apache/find_bugs
     add 3cc22f4a8 feat: remove failed couch_plugins experiment
     add 33d9a841b fix: undefined function warning
     add 4048b567c update version numbers to 3.3.1
     add ac70fc05b doc(whatsnew): document 3.3.1 updates
     add 0d29e16e6 Fix Ubuntu Jammy CI image reference
     add a840dc9a8 Fix replication job start_link.
     add 108103390 fix: debuggng leftover, speed up local rebar clones
     add c7c6785dc Add Prometheus port to Windows couchdb.config (#4356)
     add 3125bfd3c [DOC] Update required Erlang OTP versions (#4357)
     add ca791828c Escape special (html) chars in section names (#4350)
     add fb3517936 Fix handling forbidden exceptions from workers in fabric_doc_update
     add 3421b8273 Wait for dbs_info 500 timeout error
     add b5693fd7e Elixir >= 1.14 doesn't support rebar2 -  Remove initialization
     add 9a92fbbe3 Remove Spidermonkey 1.8.5
     add 1c43d0289 Fixes 9a92fbb - Set default version of Spidermonkey to 91 (#4367)
     add b3b57e445 Fix replication _scheduler/docs total_rows
     add 01c161b35 Delete unused include_lib attributes
     add a14922fad Ensure design docs are uploaded individually when replicating with _bulk_get
     add dad51b5b8 Set the SpiderMonkey version for the first phase of PR builds
     add aff7a6e71 docs(mango): match description of `$mod` with reality
     add bcfaa82c3 Merge pull request #4379 from pgj/mango-doc-fix
     add deb8ef271 Adding build-report makefile target on Windows (#4384)
     add 4b2d3dc62 Bump recon to 2.5.3
     add 3b6ebdeb3 ci(mac): re-enable mac CI for the full build
     add 5f2d5b135 Show mango_selector:match/2 call using test
     add 00e24b0df Push down field projection in mango to shard
     add 3181d928e Allow to run only specific EUnit tests on Windows (#4399)
     add 262e4d161 Enforce docs ids _changes filter optimization limit
     add e5f6c581b Docs: Fix example code in Partitioned Databases
     add f11491568 return 503 immediately if search is not available
     add 88ebc65c0 Merge pull request #4404 from apache/503-if-search-not-available
     add 9536b9796 chore(configure): be more defensive about SpiderMonkey location
     add 576ab21c6 Unify style of `if` blocks
     add 23efd8e5b Port the SpiderMonkey check to Windows
     add a7551aac2 docs(INSTALL.Unix): update instructions
     add 832f58a7a Employ `make python-black-update`
     add 1eef73952 Remove json2 JS script and the try except around seal
     add 80b68a053 Use pip3 instead of pip in docs setup
     add 0fa595531 Allow _local doc writes to the replicator dbs
     add bf0903087 Remove all javascript tests
     add 0a49ffcda Convert ExUnit tests back to EUnit
     add a73388452 Disable execution of ExUnit tests
     add c79d82f10 Fix Dreyfus Elixir test suite
     add 4185bc094 Document the `dreyfus-test` `make` target
     add 8bc485d9b Improve directory structure for Dreyfus EUnit tests
     add f4311014f Stop citing the JavaScript integration tests
     add 8a6c3bce2 Update the list of the available test suite types
     add 0867d1b21 Reorder top-level smoosh-settings to the correct section (#4420)
     add d3b0bcbf3 Test the update_docs=true case in replicator scheduler docs test
     add 58e5825c6 mango: Remove unused imports
     add b08dc7ac7 mango: Remove unused parameter from the JSON index selection
     add 1c90b504a mango: Add type specification for the JSON index selection
     add a650b4461 mango: Cover JSON index selection with unit tests
     add 3fa8f72ac mango: Match comments with implementation for JSON index selection
     add 97fdac3af mango: Fix specification of `choose_best_index/1`
     add 395c08302 Move elixir search tests to be with other elixir tests
     add 50dd63176 Chase rename of `dreyfus-test` to `elixir-search` in documentation
     add df0699a60 Clean up `make help` output
     add 065b86fab Remove the inactive uploader action from `build-report`
     add 0feedb66f Fix the `list-eunit-apps` target
     add 9b86e7130 Overhaul the Windows Makefile
     add 645912d0c Fix typo
     add 9f8cf48e9 docs/api: use {params} consistently in titles (#4426)
     add b38885114 Allow definition of JWT roles claim as comma-seperated list (#4431)
     add c866b488d Unifying the notation of dynamic parameters in the docs (#4436)
     add f7cafa30a Fix typo in "feature_flags" section comment (#4433)
     add b3890b5d3 Fix and extend developer instructions
     add 9cde18150 mango: skip the `$keymapMatch` test for text indexes
     add 1278cf19f mango: switch to UTF-8 encoding for every test
     add 187d9337e Consolidate Mango integration tests
     add ae3d2971e Upgrade hash algorithm for proxy auth (#4438)
     add 9c1278dbc Show ini code-block correctly (#4440)
     add cc674a85e Unifying the notation of dynamic parameters in the docs 2 (#4441)
     add 301797c56 Update Erlang 24 for CI
     add 7a2705ac6 hide shard-sync and purge documents from `_local_docs`
     add b702a5edf inspect the document more precisely to avoid skipping user docs
     add 8f519ba04 add tests to cover hiding resp showing system docs
     add ac600d1bb add a notice that purge documents are only visible with `include_system=true`
     add 4df37bc8c Update last_check in file logger record
     add f677dd5e8 Use persistent terms for features
     add 54879f9a5 This enables configuring FIPS mode at runtime without the need for a custom build.
     new 6ca996346 Deno Test

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (b11dd7b3a)
            \
             N -- N -- N   refs/heads/couchdb-deno (6ca996346)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/PULL_REQUEST_TEMPLATE.md                   |   5 +-
 .gitignore                                         |   5 +
 INSTALL.Unix.md                                    |  38 +-
 Makefile                                           |  67 +-
 Makefile.win                                       |  92 ++-
 README-DEV.rst                                     | 132 ++--
 build-aux/Jenkinsfile.full                         |  19 +-
 build-aux/Jenkinsfile.pr                           |  10 +-
 build-aux/couchdb-build-release.sh                 |   2 +
 build-aux/show-test-results.py                     |   4 +-
 configure                                          |  33 +-
 configure.ps1                                      |  23 +-
 dev/run                                            |   2 -
 mix.exs                                            |  12 +-
 rebar.config.script                                |   8 +-
 rel/overlay/etc/default.ini                        |  48 +-
 rel/overlay/etc/vm.args                            |  20 +
 rel/reltool.config                                 |   5 +-
 share/server/60/rewrite_fun.js                     |   5 +-
 .../{rewrite_fun.js => rewrite_fun_ast_bypass.js}  |  11 +-
 share/server/json2.js                              | 482 ------------
 share/server/util.js                               |   8 +-
 src/chttpd/src/chttpd.erl                          |   6 +-
 src/chttpd/src/chttpd_db.erl                       |   9 +-
 src/chttpd/test/eunit/chttpd_auth_tests.erl        |  87 +++
 src/chttpd/test/eunit/chttpd_changes_test.erl      | 656 ++++++++++++++++
 src/chttpd/test/eunit/chttpd_dbs_info_test.erl     |  23 +-
 src/chttpd/test/eunit/chttpd_local_docs_tests.erl  | 198 +++++
 src/config/src/config.erl                          | 286 ++++---
 src/config/test/config_tests.erl                   |   6 +
 src/couch/priv/couch_js/86/help.h                  |   5 +-
 src/couch/priv/couch_js/86/util.cpp                |  23 +
 src/couch/priv/couch_js/86/util.h                  |   2 +
 src/couch/rebar.config.script                      |  11 +-
 src/couch/src/couch.app.src                        |   3 +-
 src/couch/src/couch_changes.erl                    |  20 +-
 src/couch/src/couch_hash.erl                       |  30 +-
 src/couch/src/couch_httpd_auth.erl                 |  24 +-
 src/couch/src/couch_server.erl                     |  17 +-
 src/couch/test/eunit/couch_compress_tests.erl      | 128 ++++
 src/couch/test/eunit/couch_hash_test.erl           |  52 ++
 src/couch/test/eunit/same_site_cookie_tests.erl    |  88 +++
 src/couch/test/exunit/couch_compress_tests.exs     | 113 ---
 src/couch/test/exunit/same_site_cookie_tests.exs   |  44 --
 src/couch/test/exunit/test_helper.exs              |   2 -
 src/couch_event/src/couch_event_listener.erl       |   6 -
 src/couch_log/src/couch_log_writer_file.erl        |   7 +-
 src/couch_mrview/src/couch_mrview.erl              |  84 ++-
 src/couch_plugins/LICENSE                          | 202 -----
 src/couch_plugins/Makefile.am                      |  40 -
 src/couch_plugins/README.md                        | 159 ----
 src/couch_plugins/src/couch_plugins.app.src        |  22 -
 src/couch_plugins/src/couch_plugins.erl            | 322 --------
 src/couch_plugins/src/couch_plugins_httpd.erl      |  69 --
 src/couch_replicator/src/couch_replicator.erl      |  10 +-
 .../src/couch_replicator_doc_processor.erl         |   9 +-
 .../src/couch_replicator_doc_processor_worker.erl  |  14 +-
 src/couch_replicator/src/couch_replicator_docs.erl | 822 +++++----------------
 .../src/couch_replicator_httpd_util.erl            |   8 +-
 src/couch_replicator/src/couch_replicator_ids.erl  |   8 +-
 .../src/couch_replicator_js_functions.hrl          | 183 -----
 ...licator_docs.erl => couch_replicator_parse.erl} | 757 +++++++------------
 src/couch_replicator/src/couch_replicator_pg.erl   | 153 ++++
 .../src/couch_replicator_scheduler_job.erl         |  87 ++-
 src/couch_replicator/src/couch_replicator_sup.erl  |   1 +
 .../src/couch_replicator_utils.erl                 |  10 +-
 .../src/couch_replicator_worker.erl                |  22 +-
 .../test/eunit/couch_replicator_bulk_get_tests.erl |  79 +-
 .../test/eunit/couch_replicator_compact_tests.erl  |   2 +-
 ...ests.erl => couch_replicator_doc_ids_tests.erl} |  50 +-
 .../couch_replicator_error_reporting_tests.erl     |  69 +-
 .../test/eunit/couch_replicator_proxy_tests.erl    |  10 +-
 ...ch_replicator_retain_stats_between_job_runs.erl |   2 +-
 .../couch_replicator_scheduler_docs_tests.erl      | 261 +++++++
 .../test/eunit/couch_replicator_test_helper.erl    |  16 +-
 src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl  |  30 +-
 src/docs/README.md                                 |   4 +-
 src/docs/ext/configdomain.py                       |   7 +-
 src/docs/images/tea-erl-grey-hot-replicator.png    | Bin 0 -> 198055 bytes
 src/docs/requirements.txt                          |   3 +-
 src/docs/setup.sh                                  |   4 +-
 src/docs/src/api/database/bulk-api.rst             |   4 +-
 src/docs/src/api/database/changes.rst              |   6 +-
 src/docs/src/api/database/common.rst               |   6 +-
 src/docs/src/api/database/compact.rst              |  24 +-
 src/docs/src/api/database/find.rst                 |  18 +-
 src/docs/src/api/database/index.rst                |   4 +-
 src/docs/src/api/database/misc.rst                 |  26 +-
 src/docs/src/api/database/security.rst             |   6 +-
 src/docs/src/api/database/shard.rst                |  14 +-
 src/docs/src/api/ddoc/common.rst                   |  18 +-
 src/docs/src/api/ddoc/render.rst                   |  36 +-
 src/docs/src/api/ddoc/rewrites.rst                 |   2 +-
 src/docs/src/api/ddoc/search.rst                   |  12 +-
 src/docs/src/api/ddoc/views.rst                    |   6 +-
 src/docs/src/api/document/attachments.rst          |   6 +-
 src/docs/src/api/document/common.rst               |   6 +-
 src/docs/src/api/local.rst                         |  24 +-
 src/docs/src/api/partitioned-dbs.rst               |  28 +-
 src/docs/src/api/server/authn.rst                  |  51 +-
 src/docs/src/cluster/purging.rst                   |   8 +-
 src/docs/src/conf.py                               |   4 +-
 src/docs/src/config/auth.rst                       |  20 +-
 src/docs/src/config/compaction.rst                 |   2 +-
 src/docs/src/config/couch-peruser.rst              |   2 +-
 src/docs/src/config/intro.rst                      |   8 +
 src/docs/src/config/query-servers.rst              |  13 +
 src/docs/src/config/replicator.rst                 |  38 +-
 src/docs/src/install/unix.rst                      |   2 +-
 src/docs/src/intro/security.rst                    |  16 +-
 src/docs/src/maintenance/compaction.rst            |   2 +-
 src/docs/src/partitioned-dbs/index.rst             |   6 +-
 src/docs/src/replication/replicator.rst            |   6 +-
 src/docs/src/whatsnew/0.11.rst                     |   2 +-
 src/docs/src/whatsnew/2.3.rst                      |   4 +-
 src/docs/src/whatsnew/3.2.rst                      |   2 +-
 src/docs/src/whatsnew/3.3.rst                      | 429 +++++++++++
 src/docs/src/whatsnew/index.rst                    |   1 +
 src/dreyfus/src/dreyfus_httpd.erl                  |  13 +
 src/dreyfus/test/elixir/mix.exs                    |  30 -
 src/dreyfus/test/elixir/mix.lock                   |   5 -
 src/dreyfus/test/elixir/run                        |   4 -
 src/dreyfus/test/elixir/test/test_helper.exs       |   4 -
 .../{ => eunit}/dreyfus_blacklist_await_test.erl   |   0
 .../{ => eunit}/dreyfus_blacklist_request_test.erl |   0
 .../test/{ => eunit}/dreyfus_config_test.erl       |   0
 .../test/{ => eunit}/dreyfus_purge_test.erl        |   0
 src/dreyfus/test/{ => eunit}/dreyfus_test_util.erl |   0
 src/fabric/src/fabric_doc_update.erl               |  34 +-
 src/fabric/src/fabric_rpc.erl                      |  41 +-
 src/fabric/src/fabric_util.erl                     |   1 -
 src/mango/README.md                                |   2 +-
 src/mango/src/mango_cursor_special.erl             |   4 +-
 src/mango/src/mango_cursor_view.erl                | 272 ++++++-
 src/mango/src/mango_selector.erl                   |  25 +
 src/mango/test/02-basic-find-test.py               |   1 -
 src/mango/test/03-operator-test.py                 |   4 +
 src/mango/test/04-key-tests.py                     |   1 -
 src/mango/test/06-text-default-field-test.py       |   3 -
 src/mango/test/07-text-custom-field-list-test.py   |   2 -
 src/mango/test/13-users-db-find-test.py            |   1 -
 src/mango/test/README.md                           |  29 -
 src/mango/test/mango.py                            |  44 +-
 src/mango/test/user_docs.py                        |   3 +-
 src/rexi/src/rexi_server.erl                       |   3 -
 src/smoosh/operator_guide.md                       |   4 +-
 src/smoosh/test/smoosh_tests.erl                   | 124 ++--
 src/weatherreport/src/weatherreport_check_ioq.erl  |   9 +-
 support/build_js.escript                           |  17 +-
 test/elixir/lib/couch/dbtest.ex                    |  16 +-
 test/elixir/test/config/search.elixir              |  32 +
 test/elixir/test/config/test-config.ini            |   3 +
 test/elixir/test/jwt_roles_claim_test.exs          |  40 +-
 .../elixir/test/partition_search_test.exs          |   0
 .../test => test}/elixir/test/search_test.exs      |   0
 test/elixir/test/security_validation_test.exs      |   2 +-
 test/javascript/tests/list_views.js                | 502 -------------
 test/javascript/tests/proxyauth.js                 | 137 ----
 test/javascript/tests/replicator_db_bad_rep_id.js  | 103 ---
 test/javascript/tests/replicator_db_by_doc_id.js   | 128 ----
 test/javascript/tests/rewrite.js                   | 513 -------------
 test/javascript/tests/rewrite_js.js                | 366 ---------
 test/javascript/tests/security_validation.js       | 330 ---------
 test/javascript/tests/show_documents.js            | 376 ----------
 test/javascript/tests/users_db_security.js         | 418 -----------
 version.mk                                         |   4 +-
 166 files changed, 4375 insertions(+), 6533 deletions(-)
 copy share/server/60/{rewrite_fun.js => rewrite_fun_ast_bypass.js} (88%)
 delete mode 100644 share/server/json2.js
 create mode 100644 src/chttpd/test/eunit/chttpd_changes_test.erl
 create mode 100644 src/chttpd/test/eunit/chttpd_local_docs_tests.erl
 create mode 100644 src/couch/test/eunit/couch_compress_tests.erl
 create mode 100644 src/couch/test/eunit/couch_hash_test.erl
 create mode 100644 src/couch/test/eunit/same_site_cookie_tests.erl
 delete mode 100644 src/couch/test/exunit/couch_compress_tests.exs
 delete mode 100644 src/couch/test/exunit/same_site_cookie_tests.exs
 delete mode 100644 src/couch/test/exunit/test_helper.exs
 delete mode 100644 src/couch_plugins/LICENSE
 delete mode 100644 src/couch_plugins/Makefile.am
 delete mode 100644 src/couch_plugins/README.md
 delete mode 100644 src/couch_plugins/src/couch_plugins.app.src
 delete mode 100644 src/couch_plugins/src/couch_plugins.erl
 delete mode 100644 src/couch_plugins/src/couch_plugins_httpd.erl
 delete mode 100644 src/couch_replicator/src/couch_replicator_js_functions.hrl
 copy src/couch_replicator/src/{couch_replicator_docs.erl => couch_replicator_parse.erl} (51%)
 create mode 100644 src/couch_replicator/src/couch_replicator_pg.erl
 copy src/couch_replicator/test/eunit/{couch_replicator_selector_tests.erl => couch_replicator_doc_ids_tests.erl} (67%)
 create mode 100644 src/couch_replicator/test/eunit/couch_replicator_scheduler_docs_tests.erl
 create mode 100644 src/docs/images/tea-erl-grey-hot-replicator.png
 create mode 100644 src/docs/src/whatsnew/3.3.rst
 delete mode 100644 src/dreyfus/test/elixir/mix.exs
 delete mode 100644 src/dreyfus/test/elixir/mix.lock
 delete mode 100755 src/dreyfus/test/elixir/run
 delete mode 100644 src/dreyfus/test/elixir/test/test_helper.exs
 rename src/dreyfus/test/{ => eunit}/dreyfus_blacklist_await_test.erl (100%)
 rename src/dreyfus/test/{ => eunit}/dreyfus_blacklist_request_test.erl (100%)
 rename src/dreyfus/test/{ => eunit}/dreyfus_config_test.erl (100%)
 rename src/dreyfus/test/{ => eunit}/dreyfus_purge_test.erl (100%)
 rename src/dreyfus/test/{ => eunit}/dreyfus_test_util.erl (100%)
 delete mode 100644 src/mango/test/README.md
 create mode 100644 test/elixir/test/config/search.elixir
 rename {src/dreyfus/test => test}/elixir/test/partition_search_test.exs (100%)
 rename {src/dreyfus/test => test}/elixir/test/search_test.exs (100%)
 delete mode 100644 test/javascript/tests/list_views.js
 delete mode 100644 test/javascript/tests/proxyauth.js
 delete mode 100644 test/javascript/tests/replicator_db_bad_rep_id.js
 delete mode 100644 test/javascript/tests/replicator_db_by_doc_id.js
 delete mode 100644 test/javascript/tests/rewrite.js
 delete mode 100644 test/javascript/tests/rewrite_js.js
 delete mode 100644 test/javascript/tests/security_validation.js
 delete mode 100644 test/javascript/tests/show_documents.js
 delete mode 100644 test/javascript/tests/users_db_security.js


[couchdb] 01/01: Deno Test

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ronny pushed a commit to branch couchdb-deno
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 6ca99634620ecc04d259f41391a2646ca3076707
Author: Ronny Berndt <ro...@apache.org>
AuthorDate: Tue Nov 29 15:37:04 2022 +0100

    Deno Test
    
    Simple test branch with work from Jan.
---
 dev/run                                     |  4 ++++
 src/couch_index/src/couch_index_updater.erl | 10 ++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/dev/run b/dev/run
index df1a0b105..a0dd5b380 100755
--- a/dev/run
+++ b/dev/run
@@ -604,14 +604,18 @@ def set_boot_env(ctx):
     # fudge default query server paths
     couchjs = os.path.join(ctx["rootdir"], "src", "couch", "priv", "couchjs")
     mainjs = os.path.join(ctx["rootdir"], "share", "server", "main.js")
+    denojs = os.path.join(ctx["rootdir"], "share", "server", "main-deno.js")
     coffeejs = os.path.join(ctx["rootdir"], "share", "server", "main-coffee.js")
 
     qs_javascript = toposixpath("%s %s" % (couchjs, mainjs))
     qs_coffescript = toposixpath("%s %s" % (couchjs, coffeejs))
 
+    qs_deno = toposixpath("%s %s" % ("deno run --allow-write", denojs))
+
     os.environ["COUCHDB_QUERY_SERVER_JAVASCRIPT"] = qs_javascript
     os.environ["COUCHDB_QUERY_SERVER_COFFEESCRIPT"] = qs_coffescript
 
+    os.environ["COUCHDB_QUERY_SERVER_DENO"] = qs_deno
 
 @log("Start node {node}")
 def boot_node(ctx, node):
diff --git a/src/couch_index/src/couch_index_updater.erl b/src/couch_index/src/couch_index_updater.erl
index fe2150505..e77d7bfed 100644
--- a/src/couch_index/src/couch_index_updater.erl
+++ b/src/couch_index/src/couch_index_updater.erl
@@ -28,7 +28,8 @@
 -record(st, {
     idx,
     mod,
-    pid = nil
+    pid = nil,
+    start_ts = 0
 }).
 
 start_link(Index, Module) ->
@@ -60,7 +61,7 @@ handle_call({update, IdxState}, _From, #st{idx = Idx, mod = Mod} = State) ->
     Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState)],
     couch_log:info("Starting index update for db: ~s idx: ~s", Args),
     Pid = spawn_link(?MODULE, update, [Idx, Mod, IdxState]),
-    {reply, ok, State#st{pid = Pid}};
+    {reply, ok, State#st{pid = Pid, start_ts = erlang:system_time(seconds)}};
 handle_call({restart, IdxState}, _From, #st{idx = Idx, mod = Mod} = State) ->
     Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState)],
     couch_log:info("Restarting index update for db: ~s idx: ~s", Args),
@@ -88,8 +89,9 @@ handle_cast(_Mesg, State) ->
 
 handle_info({'EXIT', _, {updated, Pid, IdxState}}, #st{pid = Pid} = State) ->
     Mod = State#st.mod,
-    Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState)],
-    couch_log:info("Index update finished for db: ~s idx: ~s", Args),
+    Index_time = erlang:system_time(seconds) - State#st.start_ts,
+    Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState), Index_time],
+    couch_log:info("Index update finished for db: ~s idx: ~s time: ~p s", Args),
     ok = gen_server:cast(State#st.idx, {updated, IdxState}),
     {noreply, State#st{pid = undefined}};
 handle_info({'EXIT', _, {reset, Pid}}, #st{idx = Idx, pid = Pid} = State) ->