This is an automated email from the ASF dual-hosted git repository. ronny pushed a change to branch fix/readme-dev-mac in repository https://gitbox.apache.org/repos/asf/couchdb.git
omit bf8a3a065 chore(readme): update mac dev install instructions 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. add c0b8839bf Only allow POST request for /{db}/_view_cleanup (#4449) add b8abb4aad Fix bad prometheus section name add 7ec5f645f Fix flaky LRU test add 6e9834564 Fix flaky elixir users_db_tests add 5aed161e9 Remove duplicate parts of doc note (#4455) add 0db915475 Documentation: Add `adm:pass` to replication endpoint URL (#4457) add 0c49292a8 Improve documentation of source code format checks add edded9618 Tweak formatting and style of `_find` API documentation (#4460) add 774acb85d Fix erlfmt-format on Windows (#4463) add 8ec7b5788 Bump snappy to CouchDB-1.0.9 (#4464) add f40147b26 mango: correct text index selection for queries with `$regex` (#4458) add bd1d8dc8b Modify conflict ruby example add 5b5a1c2de Remove stale links from documentation comments add dff01446c Prepare for Erlang OTP/26 (#4465) add 138163147 fix: remove duplicate couchdb_erlang* from _prometheus add 6d7cfe892 Avoid re-compiling filter view functions add 5cdc0aa1b Fix list ordering and indentation in "Search" docs (#4476) add 0aedd9384 fix: prometheus counter metric naming (#4474) add b9762479f Improve couch_js_tests add a25336f91 Migrate configure settings to Windows (#4479) add bb0f37bf0 feat: add type and descriptions to prometheus output (#4475) add 8c0a177c7 docs(typo): Fix server name duplicate (#4484) add 937ccb6ef catch and log any error from mem3:local_shards add 2c129d167 Merge pull request #4485 from apache/couch_index_crashes add 1df0f4f40 Bump Erlang 24 and 25 in CI add 189db657f fix(doc): reverse definition of `all_nodes` and `cluster_nodes` to match reality add 65ad03c0f Revert "catch and log any error from mem3:local_shards" add 451d4bdd6 log the original stack trace if Mod:Func throws add f82d96173 don't crash in handle_db_event add 224d6764e track index pids during open and don't crash if they do add 0073e764b Merge pull request #4491 from apache/couch_index_fixes add 09dca4e5b Suppress sasl_error_logger output on Windows (#4492) add 27af79c4a Add log directory to eunit setup template (#4493) add 07c1433d3 eunit test to assert ddoc_updated clause doesn't throw add 3f0d86f99 Increase index crash test cover a bit add 35b1adc48 Merge pull request #4495 from apache/add_db_event_crash_test add 467e14ef1 docs(_find): catch up with the implementation and further fixes add 25d6e7dfc add error_info clause for 410 Gone add 75ee0f0fb Merge pull request #4503 from apache/410-gone add cd77b07cf Treat javascript internal errors as fatal add d1412552f docs(hosts): Remove misleading /etc/hosts info (#4506) add bef20f357 feat (prometheus): metrics for individual message queues add f4fd6b5d3 feat (prometheus): internal_replication_jobs metric add ee11952c8 feat (prometheus): membership metric add 8c1ef5bfe fix (prometheus): gauge types for metrics that can be decremented add a9bce2f59 Merge pull request #4507 from apache/prometheus_metrics add 23f4e628d treat single-element keys as the key for `_view` add 31e3f64e6 Merge pull request #4494 from jiahuili430/treat-key-as-keys add 5c99df170 allow configurable timeouts for _view and _search add 762277f3d Merge pull request #4513 from apache/configurable-timeouts add f4d7d19de docs(_find): Remove redundancy from sample `_explain` response add db38da4af Add s390x back into the CI matrix add 1432717b1 docs: Fixed `_compact/{ddoc}` and `_shards/{docid}` examples add e32cfd63d Improve compression eunit test suite add a6ab75b43 Querying `_all_docs` with non-string `key` should return an empty list add e755e2352 Make remsh work with quoted cookie add 865d5f898 Bind python-black to specific version (#4528) add b7686a9da feat (prometheus): include aggregated couch/index message queues add bb3314262 feat (prometheus): couch_db_updater and couch_file queue stats add 16a350b97 feat (prometheus): add Erlang distribution stats add daecd3f50 fix (prometheus): do not emit ophaned HELP/TYPE lines add 98a356c32 Merge pull request #4525 from apache/prometheus_erlang_dist add 4b8b7ec9f Improve couch_proc_manager add c5a7809f0 Remove limit parameter from ken add 1ed0519a1 Remove explicit import add c83b5ccb6 mango: introduce support for covering indexes add 42deb8471 mango: add type information for better self-documentation add 3351a2647 mango: increase coverage of the `choose_best_index/1` test add 313b74e92 mango: add eunit tests add e6af4924c _find: mention the `covered` attribute in the `_explain` response add f5371aab7 mango: add integration tests for keys-only covering indexes add cc500adc1 mango: mark fields with the `$exists` operator indexable add 8b1e1837d mango: enhance compositionality of `consider_index_coverage/3` add 28480f9a4 mango: fix definition of index coverage add df52be577 mango: refactor add c1195e43c fix(mango): GET invalid path under `_index` should not cause 500 add a28b75a9d Import nouveau (#4291) add 4c741a94d put lucene 9 indexes in subdir add 6f568480c Merge pull request #4539 from apache/nouveau-lucene9-subdir add 3c90100de remove unused facet property add ac300497b Merge pull request #4540 from apache/nouveau-remove-facet-field add be07ff799 simplify analyzer factory add e956ce523 Merge pull request #4541 from apache/nouveau-simplify-analyzer-factory add 3f0ed0c9a doc(cve): add 2023-26268 placeholder add 2ee4f659f doc(cve): add 2023-26268 placeholder & backport release notes add eeca93c94 declare dependency on nouveau add e4bc2b51c Merge pull request #4550 from apache/mango-nouveau-dep add e6dcf443f Noticed the new internal error couchjs test was flaky add 0d1175a4f Another flaky couch_js fix add 5096243ff enable nouveau tests in CI add 3ea049d64 allow PUT to existing index if definition identical add 57fc9047a OTP 23 support add f240adc8a Add log dumping to build-report make target add f4f04e092 enhance out of order message add 6f39ae734 mango end-to-end tests for nouveau add 210e80e03 enhance test diagnostics add 5df9dbe8c capture warn/error in entirety add 2e4563115 disable ken add 67e17afd9 maven batch mode add 307450c3c cache (immutable) maven artifacts add 8e03f9766 Merge pull request #4543 from apache/jenkins-enable-nouveau-ci add 23dfab503 fix race condition when creating indexes add 6f4711fe7 Merge pull request #4555 from apache/nouveau-race-condition-creating-index add 07546f506 remove afterburner add 82aa1625c Merge pull request #4556 from apache/nouveau-remove-afterburner add d5c78e6be finish partitioned support for nouveau add aa8eb076c Merge pull request #4557 from apache/nouveau-partition-support add fe445bb95 Make Erlang 24 the minimum version add a9831a676 fix ken_server:nouveau_updated add 3044528d5 Merge pull request #4559 from apache/fix-ken-server-nouveau add 2430728f5 Clarify encoding length in performance.rst add e659a971c CVE-2023-2626 details doc update add 17a99712e Nouveau doc fixes (#4572) add f1ab0cabf Add report logging (#4483) add 4083f7b1b mention flag and new dependencies add bb633a712 Import xxHash add bc49cef4b Encapsulate MD5 file checksums bits in couch_file add 1a59e5d70 Remove duplicate etag generation function add 92c338a3a Add new configure option and restore --dev behavior (#4582) add 039da4a8b remove Content-MD5 header support add 4a8c8b52f Merge pull request #4574 from apache/remove-content-md5-header add 6371cd0a0 Revert "fix(mango): GET invalid path under `_index` should not cause 500" add 2543590f3 Merge pull request #4584 from apache/revert-invalid-path-fix add 9b3fbf4c3 Remove extra unused variable (#4577) add 6bb4fbd78 upgrade nouveau to lucene 9.6.0 add 67c7f6025 Merge pull request #4585 from apache/nouveau-lucene-9.6.0 add bc3eb6717 switch to Gradle add 9851bb396 Merge pull request #4587 from apache/nouveau-gradle add 51267a5fd Improve nouveau mango integration add f5935c65d Merge pull request #4589 from apache/nouveau-mango-string-text add a9d8cda2b Merge changes from 3.3.x into main add 8600e46f2 mango: extend execution statistics with keys examined (#4569) add 4c80583e3 fix dreyfus after 'Improve nouveau mango integration' add abd129fac Merge pull request #4595 from apache/dreyfus-default-field add 75316aedb add test and code quality plugins add 80b8f24e6 apply spotless changes add 98fc76d67 Merge pull request #4596 from apache/nouveau-quality-plugins add a854625d7 fix(mango): covering indexes for partitioned databases add 85e1fa791 Speed up internal replicator add 54b8c7322 add nouveau and java tools to dev container add 6ddeac80a Merge pull request #4599 from apache/nouveau-dev-container add f74572775 add tests for QueryDeserializer add a58684f42 Merge pull request #4600 from apache/nouveau-query-deserializer-tests add dcf57c710 Add a simple fabric benchmark add b195f3734 mango: address missing parts of the `_index` API add 6b4cbaa72 Update default vm.args settings add ba54c635b Optimize mem3:dbname/1 function add 68ef23311 Fix rebar3 version to 3.21.0 add e6939557b ARM64 worker went away. add 116c5b0a9 Revert "ARM64 worker went away." add 951f1b946 Add a few more commit and query engine metrics add 834a2d31e Add missing stats description for Mango keys examined add 751c14dc3 mango: fix the faulty `index_array_length` tests add 649f47310 mango: remove redundant text service checks from the tests add 3ff87fafc optionally suppress version info in server response header add 2bbc89ce1 Use milliseconds for fsync time histogram add a4bad8d8e Bump requests from 2.27.1 to 2.31.0 in /src/mango add 1f363b764 Improve fsync metrics time calculation add 0748a1e7a Use a faster sets implementation available since OTP 24 add 79b2b7c11 Revert "Bump requests from 2.27.1 to 2.31.0 in /src/mango" add 4cfdf3062 Fix warning: variable bound multiple times add 6194cfc68 Git ignore mango .hypothesis directory add a4bbb87d1 Remove excl_archive_filters add b7de21f46 Support OTP 26 base64 decode error add 7f13f640c Sort lists from maps add 453c698a5 Convert `term_to_binary` to `?term_to_bin` add bf5868890 Merge pull request #4581 from apache/otp-26-compat add f7db54c41 Rename NonRep -> Local and merge_conflicts -> replicated_changes add 0bc0839ac Add OTP 26 to pull request CI list add c75c31d38 Handle replicator instance start time during upgrades better add 1a45bc211 Use xxHash for couch_file document and attachment summary checksums add c742d9c7c Fix purge infos replicating to the wrong shards during shard splitting. add 8b6b3e9b3 Fix typo POST -> PUT add 0fa9a07f0 Add extra assert in flaky couch_file test add e996fa07b Fix prometheus to survive mem3_sync termination add 416c1cd8d TLS: add `{verify, verify_peer}` to enable verification add eb6a74d56 mango: revisit test database recreation logic add 604526f5f Add optional logging of security issues when replicating (#4625) add bb1216593 clarify default quorum calculation add 38b00c900 Merge pull request #4636 from apache/clarify-quorum add bca3ab09f Clean up fabric_bench_test databases add 3690f9e24 Improve emitted change feed sequence after a split add be2eeccdc docs: update sphinx resource hyperlink add 290ea87b8 docs: add `adm:pass` to URL examples add fafa982c5 Fix the ability to use ; in config values add d9b4c199e upgrade nouveau to lucene 9.7.0 add 16f47d758 Merge pull request #4654 from apache/lucene-9.7.0 add f5897635e mango: replace `foldl` with a `map` add 8dbb021aa Fix undefined range in mem3_rep purge replication logic add e3eb6dfca upgrde to dropwizard 4.0.1 add c892a2619 Merge pull request #4664 from apache/dropwizard-4.0.1 add d7a082af2 mango: chase changes in `mango_idx_text` add 2d0e6a585 Merge pull request #4660 from pgj/fix/mango_idx_nouveau-regex add 4a68234e7 mango: simplify implementation of empty selector tests add fca1969ae split all add 05df4bb41 Merge pull request #4669 from apache/replicator-split-all add ac8cb3779 Fix updating values via the Server Configuration API add 882e7161a allow setting of some ibrowse options add e7f67c846 Merge pull request #4670 from apache/replicator-ibrowse-options add 890c26d5c deps: upgrade proper (#4671) add 5df7fee19 Conditionally exclude nouveau from elixir make target add 377e71304 Merge pull request #4674 from apache/nouveau-elixir-conditional add e89219848 Fix multipart parser "attachment longer than expected" error add d4d49077d Crash replication jobs on unexpected 4xx errors add 3e8155e6c Replace Folsom and improve performance add c3e67eec8 Fix: `_design_docs/queries` with `keys` should only return design docs add 29f79d5ab docs: `_design_docs/queries` and `_local_docs/queries` add a19d8a9ea allow locale setting for number detection add 63672afb4 Merge pull request #4685 from apache/nouveau-locale add b7ca600e8 run haproxy and nouveau without shell add 36cb5f06e Merge pull request #4689 from apache/dev-run-no-shell add 4df0dc45e docs: add Centos/RHEL9+, thanks for nothing RedHat add d2edfd9a3 feat: allow restarting of failed jobs add 480d3a3cb feat: make rexi timeouts and replication batches for shard split topoff configurable add 795d37afe set nouveau minimum java version add 48338247b Merge pull request #4692 from apache/nouveau-minimum-java-version add cfee5236b send cookie on successful basic auth add e35fb2032 Merge pull request #4687 from apache/preemptive-cookie add ea737d908 Revert "send cookie on successful basic auth" add d609a9f32 Merge pull request #4694 from apache/revert-preemptive-cookie add 1c9dbdb14 Build Nouveau on Windows (#4678) add 3a4c2606a Add "CouchDB-Replicator/..." user agent to replicator /_session requests add 2df79d0f3 Try to fix the full CI checkout add ff2fea6c8 Read the Docs configuration file (#4233) add bd5781dfd Update docs badge icon (#4699) add 50c69a0c6 send a session cookie after successful basic auth add 9d44e311e Merge pull request #4702 from apache/basic-auth-to-session add 42142f895 mango: remove duplicate elements from `indexable_fields/1` results add 526e203d3 dreyfus: make faceting produce maps on empty results add 5e5ac9edd mango: tweak the formatting of option r in the _explain output add 3294a72ac test(make): remove `elixir` target, rename `elixir-suite` to `elixir` add 7313c4aa7 dreyfus: amend the fix for faceting on zero values add aef083c59 Merge pull request #4707 from pgj/fix/dreyfus-faceting-on-zero-part-deux add 1f2994e7c ci(freebsd): re-enable full platform ci on FreeBSD add 64af302f6 Handle invalid field errors in Mango add 6b9e5bfee feat(build): fail build if xref complains add f9d4dccfa Introduce optional countermeasures as we run out of disk space add 14a8d5c1c Merge pull request #4681 from apache/out-of-disk-handler add a1ca6d75d Upgrade sphinx-rtd-theme add 5f26ab1c1 docs: fix markdown for Mango configuration options add 996e257ee docs: correct the order of fields in the sample _explain output add 64faef7a5 Fix pending count for the reverse changes feed add 259e64173 support clustered purge in nouveau add 954b57356 Merge pull request #4717 from apache/nouveau-purge add 42a62b235 Update README.md add 55589b7d3 Merge pull request #4721 from apache/rnewson-patch-1 add 33235273f Fix badmatch error when purge requests time out add e69178d3f More Makefile.win adjustments to match Makefile (#4731) add e60e27554 Unlock build using Elixir 1.15 (#4726) add c32ceea43 Try to fix deb package builds in the main CI add 1b09a3b3a Use GNU make vars for paths (#4732) add d5701f437 Stop client process and clean up if client disconnects add 9a6bba88e Ban the last monster (#4743) new a51250c20 chore(readme): update mac dev install instructions 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 (bf8a3a065) \ N -- N -- N refs/heads/fix/readme-dev-mac (a51250c20) 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: .asf.yaml | 6 + .devcontainer/devcontainer.json | 13 +- .gitignore | 7 +- .readthedocs.yaml | 37 + INSTALL.Unix.md | 38 +- LICENSE | 41 + Makefile | 159 +- Makefile.win | 196 +- README-DEV.rst | 141 +- README.rst | 4 +- build-aux/Jenkinsfile.full | 74 +- build-aux/Jenkinsfile.pr | 8 +- build-aux/print-committerlist.sh | 2 +- build-aux/show-test-results.py | 4 +- build-aux/xref-helper.sh | 24 + configure | 74 +- configure.ps1 | 29 +- dev/format_lib.py | 4 +- dev/remsh-tls | 8 +- dev/run | 84 +- mix.exs | 6 +- nouveau/.gitattributes | 1 + nouveau/.gitignore | 8 + nouveau/LICENSE | 201 + nouveau/README.md | 118 + nouveau/TODO | 8 + nouveau/build.gradle | 91 + nouveau/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 62076 bytes nouveau/gradle/wrapper/gradle-wrapper.properties | 6 + nouveau/gradlew | 245 + nouveau/gradlew.bat | 92 + nouveau/nouveau.yaml | 27 + nouveau/settings.gradle | 5 + .../apache/couchdb/nouveau/NouveauApplication.java | 80 + .../nouveau/NouveauApplicationConfiguration.java | 71 + .../apache/couchdb/nouveau/api/AnalyzeRequest.java | 48 + .../couchdb/nouveau/api/AnalyzeResponse.java | 41 + .../couchdb/nouveau/api/DocumentDeleteRequest.java | 55 + .../couchdb/nouveau/api/DocumentUpdateRequest.java | 69 + .../apache/couchdb/nouveau/api/DoubleField.java | 52 + .../apache/couchdb/nouveau/api/DoubleRange.java | 27 + .../java/org/apache/couchdb/nouveau/api/Field.java | 44 + .../couchdb/nouveau/api/IndexDefinition.java | 89 + .../org/apache/couchdb/nouveau/api/IndexInfo.java | 68 + .../couchdb/nouveau/api/IndexInfoRequest.java | 45 + .../java/org/apache/couchdb/nouveau/api/Range.java | 130 + .../org/apache/couchdb/nouveau/api/SearchHit.java | 60 + .../apache/couchdb/nouveau/api/SearchRequest.java | 160 + .../apache/couchdb/nouveau/api/SearchResults.java | 92 + .../apache/couchdb/nouveau/api/StoredField.java | 45 + .../apache/couchdb/nouveau/api/StringField.java | 53 + .../org/apache/couchdb/nouveau/api/TextField.java | 53 + .../org/apache/couchdb/nouveau/core/IOUtils.java | 63 + .../org/apache/couchdb/nouveau/core/Index.java | 217 + .../apache/couchdb/nouveau/core/IndexFunction.java | 22 + .../apache/couchdb/nouveau/core/IndexLoader.java | 24 + .../apache/couchdb/nouveau/core/IndexManager.java | 338 ++ .../apache/couchdb/nouveau/core/StripedLock.java | 42 + .../nouveau/core/UpdatesOutOfOrderException.java | 28 + .../couchdb/nouveau/core/ser/ByteArrayWrapper.java | 23 + .../couchdb/nouveau/core/ser/DoubleWrapper.java | 23 + .../couchdb/nouveau/core/ser/FloatWrapper.java | 23 + .../couchdb/nouveau/core/ser/IntWrapper.java | 23 + .../couchdb/nouveau/core/ser/LongWrapper.java | 23 + .../couchdb/nouveau/core/ser/PrimitiveWrapper.java | 45 + .../couchdb/nouveau/core/ser/StringWrapper.java | 23 + .../couchdb/nouveau/health/AnalyzeHealthCheck.java | 43 + .../couchdb/nouveau/health/IndexHealthCheck.java | 60 + .../nouveau/lucene9/Lucene9AnalyzerFactory.java | 139 + .../couchdb/nouveau/lucene9/Lucene9Index.java | 513 ++ .../couchdb/nouveau/lucene9/Lucene9Module.java | 29 + .../nouveau/lucene9/NouveauQueryParser.java | 184 + .../nouveau/lucene9/ParallelSearcherFactory.java | 34 + .../couchdb/nouveau/lucene9/QueryDeserializer.java | 134 + .../couchdb/nouveau/lucene9/QuerySerializer.java | 168 + .../lucene9/SimpleAsciiFoldingAnalyzer.java | 37 + .../couchdb/nouveau/resources/AnalyzeResource.java | 69 + .../couchdb/nouveau/resources/IndexResource.java | 163 + .../couchdb/nouveau/tasks/CloseAllIndexesTask.java | 35 + nouveau/src/main/resources/banner.txt | 7 + nouveau/src/main/resources/openapi.yaml | 9 + .../couchdb/nouveau/api/SearchRequestTest.java | 57 + .../nouveau/health/AnalyzeHealthCheckTest.java | 29 + .../nouveau/health/IndexHealthCheckTest.java | 48 + .../lucene9/Lucene9AnalyzerFactoryTest.java | 281 + .../couchdb/nouveau/lucene9/Lucene9IndexTest.java | 246 + .../nouveau/lucene9/NouveauQueryParserTest.java | 116 + .../nouveau/lucene9/QuerySerializationTest.java | 106 + .../resources/fixtures/DocumentUpdateRequest.json | 22 + .../src/test/resources/fixtures/SearchRequest.json | 17 + rebar.config.script | 11 +- rel/apps/couch_epi.config | 1 + rel/files/eunit.ini | 4 +- rel/overlay/bin/remsh | 21 +- rel/overlay/etc/default.ini | 73 +- rel/overlay/etc/vm.args | 35 + rel/plugins/eunit_plugin.erl | 4 +- rel/reltool.config | 13 +- setup_eunit.template | 3 +- share/server/filter.js | 5 - share/server/json2.js | 482 -- share/server/loop.js | 29 +- share/server/nouveau.js | 108 + share/server/state.js | 12 +- share/server/util.js | 12 +- share/server/views.js | 2 + src/chttpd/priv/stats_descriptions.cfg | 4 + src/chttpd/src/chttpd.erl | 49 +- src/chttpd/src/chttpd_db.erl | 49 +- src/chttpd/src/chttpd_misc.erl | 15 +- src/chttpd/src/chttpd_node.erl | 79 +- src/chttpd/src/chttpd_show.erl | 5 +- src/chttpd/src/chttpd_util.erl | 125 +- src/chttpd/test/eunit/chttpd_auth_tests.erl | 87 + src/chttpd/test/eunit/chttpd_changes_test.erl | 656 ++ src/chttpd/test/eunit/chttpd_db_test.erl | 939 +-- src/chttpd/test/eunit/chttpd_local_docs_tests.erl | 198 + src/chttpd/test/eunit/chttpd_util_test.erl | 89 + src/chttpd/test/eunit/chttpd_view_test.erl | 473 +- src/config/src/config.erl | 82 +- src/config/test/config_tests.erl | 6 + src/couch/include/couch_db.hrl | 11 +- src/couch/priv/stats_descriptions.cfg | 56 + src/couch/rebar.config.script | 3 + src/couch/src/couch.app.src | 3 +- src/couch/src/couch_att.erl | 10 +- src/couch/src/couch_bt_engine.erl | 4 +- src/couch/src/couch_changes.erl | 22 +- src/couch/src/couch_db.erl | 60 +- src/couch/src/couch_db_split.erl | 47 +- src/couch/src/couch_db_updater.erl | 44 +- src/couch/src/couch_disk_monitor.erl | 241 + src/couch/src/couch_doc.erl | 10 +- src/couch/src/couch_file.erl | 150 +- src/couch/src/couch_hash.erl | 30 +- src/couch/src/couch_httpd.erl | 19 +- src/couch/src/couch_httpd_auth.erl | 99 +- src/couch/src/couch_httpd_db.erl | 31 +- src/couch/src/couch_httpd_multipart.erl | 2 +- .../src/couch_lists.erl} | 40 +- src/couch/src/couch_native_process.erl | 4 +- src/couch/src/couch_os_process.erl | 9 +- src/couch/src/couch_proc_manager.erl | 664 +- src/couch/src/couch_query_servers.erl | 108 +- src/couch/src/couch_secondary_sup.erl | 3 +- src/couch/src/couch_server.erl | 8 - src/couch/src/couch_util.erl | 5 +- src/couch/src/test_util.erl | 6 + src/couch/test/eunit/couch_auth_cache_tests.erl | 3 +- src/couch/test/eunit/couch_compress_tests.erl | 128 + src/couch/test/eunit/couch_etag_tests.erl | 4 +- src/couch/test/eunit/couch_file_tests.erl | 297 +- src/couch/test/eunit/couch_flags_config_tests.erl | 2 +- src/couch/test/eunit/couch_hash_test.erl | 52 + src/couch/test/eunit/couch_js_tests.erl | 219 +- .../test/eunit/couch_lists_tests.erl} | 25 +- src/couch/test/eunit/couch_query_servers_tests.erl | 2 +- src/couch/test/eunit/couch_totp_tests.erl | 37 +- src/couch/test/eunit/couchdb_attachments_tests.erl | 30 +- .../test/eunit/couchdb_file_compression_tests.erl | 116 +- src/couch/test/eunit/couchdb_os_proc_pool.erl | 796 ++- 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_dist/.gitignore | 4 + src/couch_dist/README.md | 162 + src/couch_dist/certs/certs | 11 + src/couch_dist/certs/certs.exs | 209 + src/couch_dist/certs/parse_cert.escript | 8 + src/couch_dist/gen_certs | 43 + src/couch_epi/src/couch_epi.hrl | 3 + src/couch_epi/src/couch_epi_util.erl | 4 +- src/couch_event/src/couch_event_listener_mfa.erl | 25 +- src/couch_index/src/couch_index_server.erl | 150 +- .../test/eunit/couch_index_crash_tests.erl | 233 + .../test/eunit/couch_index_ddoc_updated_tests.erl | 3 +- src/couch_log/include/couch_log.hrl | 3 +- src/couch_log/priv/stats_descriptions.cfg | 8 + src/couch_log/src/couch_log.erl | 14 +- src/couch_log/src/couch_log_config.erl | 3 + src/couch_log/src/couch_log_config_dyn.erl | 1 + src/couch_log/src/couch_log_formatter.erl | 65 + src/couch_log/src/couch_log_sup.erl | 2 + src/couch_log/src/couch_log_trunc_io.erl | 2 +- src/couch_log/src/couch_log_util.erl | 13 +- src/couch_log/src/couch_log_writer_file.erl | 9 +- src/couch_log/src/couch_log_writer_stderr.erl | 4 +- src/couch_log/src/couch_log_writer_syslog.erl | 28 +- src/couch_log/test/eunit/couch_log_config_test.erl | 18 + .../test/eunit/couch_log_formatter_test.erl | 17 + src/couch_log/test/eunit/couch_log_writer_ets.erl | 7 +- .../test/eunit/couch_log_writer_syslog_test.erl | 40 + src/couch_mrview/src/couch_mrview.erl | 94 +- src/couch_mrview/src/couch_mrview_http.erl | 37 +- src/couch_mrview/src/couch_mrview_show.erl | 5 +- src/couch_mrview/src/couch_mrview_util.erl | 38 +- .../test/eunit/couch_mrview_all_docs_tests.erl | 39 + .../test/eunit/couch_mrview_http_tests.erl | 29 + src/couch_prometheus/src/couch_prometheus.app.src | 2 +- src/couch_prometheus/src/couch_prometheus.erl | 362 ++ src/couch_prometheus/src/couch_prometheus_http.erl | 5 +- .../src/couch_prometheus_server.erl | 236 - src/couch_prometheus/src/couch_prometheus_sup.erl | 4 +- src/couch_prometheus/src/couch_prometheus_util.erl | 185 +- .../test/eunit/couch_prometheus_e2e_tests.erl | 63 +- .../test/eunit/couch_prometheus_util_tests.erl | 70 - .../src/cpse_test_read_write_docs.erl | 5 +- src/couch_pse_tests/src/cpse_util.erl | 4 +- .../include/couch_replicator_api_wrap.hrl | 3 +- src/couch_replicator/src/couch_replicator.erl | 1 + .../src/couch_replicator_api_wrap.erl | 30 +- .../src/couch_replicator_auth_session.erl | 20 +- .../src/couch_replicator_doc_processor.erl | 1 + src/couch_replicator/src/couch_replicator_docs.erl | 2 + src/couch_replicator/src/couch_replicator_ids.erl | 2 +- .../src/couch_replicator_parse.erl | 89 +- .../src/couch_replicator_scheduler_job.erl | 26 +- .../src/couch_replicator_utils.erl | 111 +- .../src/couch_replicator_worker.erl | 104 +- .../test/eunit/couch_replicator_doc_ids_tests.erl | 82 + .../couch_replicator_error_reporting_tests.erl | 204 +- .../couch_replicator_scheduler_docs_tests.erl | 262 +- .../test/eunit/couch_replicator_test_helper.erl | 12 +- src/couch_stats/README.md | 21 +- src/couch_stats/src/couch_stats.app.src | 2 +- src/couch_stats/src/couch_stats.erl | 209 +- src/couch_stats/src/couch_stats.hrl | 14 - src/couch_stats/src/couch_stats_aggregator.erl | 162 - src/couch_stats/src/couch_stats_counter.erl | 67 + src/couch_stats/src/couch_stats_gauge.erl | 54 + src/couch_stats/src/couch_stats_histogram.erl | 457 ++ src/couch_stats/src/couch_stats_httpd.erl | 9 - src/couch_stats/src/couch_stats_math.erl | 406 ++ src/couch_stats/src/couch_stats_server.erl | 250 + src/couch_stats/src/couch_stats_sup.erl | 2 +- src/couch_stats/src/couch_stats_util.erl | 190 + .../src/ddoc_cache_entry_validation_funs.erl | 2 +- src/ddoc_cache/src/ddoc_cache_value.erl | 4 +- src/docs/README.md | 4 +- src/docs/ext/configdomain.py | 2 - src/docs/requirements.txt | 2 +- src/docs/setup.sh | 4 +- src/docs/src/api/database/bulk-api.rst | 108 +- src/docs/src/api/database/changes.rst | 6 +- src/docs/src/api/database/common.rst | 6 +- src/docs/src/api/database/compact.rst | 28 +- src/docs/src/api/database/find.rst | 326 +- src/docs/src/api/database/index.rst | 4 +- src/docs/src/api/database/misc.rst | 26 +- src/docs/src/api/database/security.rst | 8 +- src/docs/src/api/database/shard.rst | 23 +- src/docs/src/api/ddoc/common.rst | 18 +- src/docs/src/api/ddoc/index.rst | 1 + src/docs/src/api/ddoc/nouveau.rst | 145 + src/docs/src/api/ddoc/render.rst | 38 +- src/docs/src/api/ddoc/rewrites.rst | 2 +- src/docs/src/api/ddoc/search.rst | 12 +- src/docs/src/api/ddoc/views.rst | 91 +- src/docs/src/api/document/attachments.rst | 14 +- src/docs/src/api/document/common.rst | 6 +- src/docs/src/api/local.rst | 165 +- src/docs/src/api/partitioned-dbs.rst | 28 +- src/docs/src/api/server/authn.rst | 50 +- src/docs/src/api/server/common.rst | 53 +- src/docs/src/best-practices/forms.rst | 6 +- src/docs/src/best-practices/iso-date.rst | 4 +- src/docs/src/best-practices/reverse-proxies.rst | 2 +- src/docs/src/cluster/purging.rst | 8 +- src/docs/src/cluster/sharding.rst | 15 +- src/docs/src/cluster/tls_erlang_distribution.rst | 53 +- 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/couchdb.rst | 17 + src/docs/src/config/disk-monitor.rst | 76 + src/docs/src/config/http.rst | 32 + src/docs/src/config/index.rst | 1 + src/docs/src/config/intro.rst | 6 +- src/docs/src/config/query-servers.rst | 37 +- src/docs/src/config/replicator.rst | 65 +- src/docs/src/cve/2023-26268.rst | 61 + src/docs/src/ddocs/index.rst | 1 + src/docs/src/ddocs/nouveau.rst | 692 +++ src/docs/src/ddocs/search.rst | 90 +- src/docs/src/ddocs/views/collation.rst | 2 +- src/docs/src/ddocs/views/pagination.rst | 4 +- src/docs/src/experimental.rst | 10 + src/docs/src/install/index.rst | 1 + src/docs/src/install/nouveau.rst | 69 + src/docs/src/install/search.rst | 2 +- src/docs/src/install/unix.rst | 21 +- src/docs/src/intro/api.rst | 43 +- src/docs/src/intro/curl.rst | 19 +- src/docs/src/intro/security.rst | 8 +- src/docs/src/maintenance/compaction.rst | 29 +- src/docs/src/maintenance/performance.rst | 4 +- src/docs/src/partitioned-dbs/index.rst | 22 +- src/docs/src/replication/conflicts.rst | 107 +- src/docs/src/replication/replicator.rst | 70 +- src/docs/src/setup/cluster.rst | 6 +- src/docs/src/setup/single-node.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 | 18 +- src/docs/src/whatsnew/3.3.rst | 56 +- src/dreyfus/src/dreyfus_fabric_search.erl | 4 +- src/dreyfus/src/dreyfus_httpd.erl | 20 +- src/dreyfus/src/dreyfus_index.erl | 6 +- 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/ets_lru/test/ets_lru_test.erl | 6 + src/exxhash/.gitignore | 7 + src/{b64url => exxhash}/Makefile | 0 src/exxhash/README.md | 27 + src/exxhash/c_src/exxhash.c | 31 + src/exxhash/c_src/xxhash.c | 43 + src/exxhash/c_src/xxhash.h | 6415 ++++++++++++++++++++ src/exxhash/rebar.config | 32 + .../couch_epi.hrl => exxhash/src/exxhash.app.src} | 9 +- src/exxhash/src/exxhash.erl | 55 + src/exxhash/test/exxhash_tests.erl | 54 + src/fabric/src/fabric.erl | 7 +- src/fabric/src/fabric_bench.erl | 371 ++ src/fabric/src/fabric_db_create.erl | 3 +- src/fabric/src/fabric_db_update_listener.erl | 16 +- src/fabric/src/fabric_doc_purge.erl | 591 +- src/fabric/src/fabric_rpc.erl | 60 +- src/fabric/src/fabric_streams.erl | 225 +- src/fabric/src/fabric_util.erl | 2 +- src/fabric/src/fabric_view.erl | 17 +- src/fabric/src/fabric_view_all_docs.erl | 44 +- src/fabric/src/fabric_view_changes.erl | 42 +- src/fabric/src/fabric_view_map.erl | 8 +- src/fabric/src/fabric_view_reduce.erl | 6 +- src/fabric/test/eunit/fabric_bench_test.erl | 91 + src/global_changes/src/global_changes_listener.erl | 6 +- src/global_changes/src/global_changes_server.erl | 6 +- src/ken/src/ken_server.erl | 71 +- src/ken/test/ken_server_test.erl | 10 +- src/mango/README.md | 2 +- src/mango/requirements.txt | 3 +- src/mango/src/mango.app.src | 3 +- src/mango/src/mango.hrl | 30 + src/mango/src/mango_cursor.erl | 14 +- ...go_cursor_text.erl => mango_cursor_nouveau.erl} | 139 +- src/mango/src/mango_cursor_special.erl | 4 +- src/mango/src/mango_cursor_text.erl | 8 +- src/mango/src/mango_cursor_view.erl | 1452 ++++- src/mango/src/mango_error.erl | 37 + src/mango/src/mango_execution_stats.erl | 78 +- src/mango/src/mango_httpd.erl | 49 +- src/mango/src/mango_idx.erl | 36 +- .../{mango_idx_text.erl => mango_idx_nouveau.erl} | 26 +- src/mango/src/mango_idx_text.erl | 150 +- src/mango/src/mango_idx_view.erl | 137 +- src/mango/src/mango_native_proc.erl | 119 +- src/mango/src/mango_selector.erl | 74 +- src/mango/src/mango_selector_text.erl | 435 +- src/mango/test/01-index-crud-test.py | 51 + src/mango/test/02-basic-find-test.py | 19 +- src/mango/test/03-operator-test.py | 4 + src/mango/test/04-key-tests.py | 4 +- src/mango/test/05-index-selection-test.py | 33 +- src/mango/test/06-basic-text-test.py | 3 +- src/mango/test/06-text-default-field-test.py | 3 - src/mango/test/07-text-custom-field-list-test.py | 2 - .../test/10-disable-array-length-field-test.py | 5 +- src/mango/test/13-users-db-find-test.py | 1 - src/mango/test/15-execution-stats-test.py | 17 +- src/mango/test/16-index-selectors-test.py | 59 +- src/mango/test/21-empty-selector-tests.py | 129 +- src/mango/test/22-covering-index-test.py | 183 + src/mango/test/README.md | 29 - src/mango/test/mango.py | 97 +- src/mango/test/user_docs.py | 18 +- src/mem3/src/mem3.erl | 53 +- src/mem3/src/mem3_hash.erl | 3 +- src/mem3/src/mem3_rep.erl | 156 +- src/mem3/src/mem3_reshard.erl | 2 +- src/mem3/src/mem3_reshard_index.erl | 44 +- src/mem3/src/mem3_reshard_job.erl | 26 +- src/mem3/src/mem3_rpc.erl | 3 + src/mem3/src/mem3_sync.erl | 15 +- src/mem3/src/mem3_sync_event_listener.erl | 6 +- src/mem3/src/mem3_util.erl | 2 +- src/mem3/test/eunit/mem3_rep_test.erl | 229 +- src/mem3/test/eunit/mem3_reshard_api_test.erl | 32 + src/mem3/test/eunit/mem3_reshard_test.erl | 108 +- src/nouveau/include/nouveau.hrl | 23 + .../priv/stats_descriptions.cfg | 17 +- src/nouveau/src/nouveau.app.src | 29 + .../src/nouveau.erl} | 11 +- src/nouveau/src/nouveau_api.erl | 257 + src/nouveau/src/nouveau_app.erl | 30 + src/nouveau/src/nouveau_bookmark.erl | 68 + src/nouveau/src/nouveau_epi.erl | 52 + src/nouveau/src/nouveau_fabric.erl | 36 + src/nouveau/src/nouveau_fabric_cleanup.erl | 43 + src/nouveau/src/nouveau_fabric_info.erl | 99 + src/nouveau/src/nouveau_fabric_search.erl | 227 + src/nouveau/src/nouveau_httpd.erl | 288 + src/nouveau/src/nouveau_httpd_handlers.erl | 35 + src/nouveau/src/nouveau_index_manager.erl | 161 + src/nouveau/src/nouveau_index_updater.erl | 213 + .../src/nouveau_plugin_couch_db.erl} | 14 +- src/nouveau/src/nouveau_rpc.erl | 57 + src/nouveau/src/nouveau_sup.erl | 31 + src/nouveau/src/nouveau_util.erl | 198 + src/smoosh/operator_guide.md | 4 +- src/smoosh/src/smoosh_persist.erl | 14 +- support/build_js.escript | 4 +- test/elixir/lib/couch.ex | 25 +- test/elixir/test/attachments_test.exs | 23 - test/elixir/test/config/nouveau.elixir | 29 + test/elixir/test/config/search.elixir | 36 + test/elixir/test/config/suite.elixir | 8 +- test/elixir/test/config/test-config.ini | 9 + test/elixir/test/config_test.exs | 12 + test/elixir/test/cookie_auth_test.exs | 42 + test/elixir/test/disk_monitor.exs | 55 + test/elixir/test/jwt_roles_claim_test.exs | 40 +- test/elixir/test/nouveau_test.exs | 599 ++ .../elixir/test/partition_search_test.exs | 0 .../test => test}/elixir/test/search_test.exs | 77 +- test/elixir/test/users_db_test.exs | 8 +- test/fixtures/allowed-xref.txt | 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 | 2 +- 444 files changed, 31772 insertions(+), 8191 deletions(-) create mode 100644 .readthedocs.yaml create mode 100755 build-aux/xref-helper.sh create mode 100644 nouveau/.gitattributes create mode 100644 nouveau/.gitignore create mode 100644 nouveau/LICENSE create mode 100644 nouveau/README.md create mode 100644 nouveau/TODO create mode 100644 nouveau/build.gradle create mode 100644 nouveau/gradle/wrapper/gradle-wrapper.jar create mode 100644 nouveau/gradle/wrapper/gradle-wrapper.properties create mode 100755 nouveau/gradlew create mode 100644 nouveau/gradlew.bat create mode 100644 nouveau/nouveau.yaml create mode 100644 nouveau/settings.gradle create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplicationConfiguration.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeResponse.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleField.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleRange.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexDefinition.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfoRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchHit.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/StoredField.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/StringField.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/TextField.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/IOUtils.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexFunction.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexLoader.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/StripedLock.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderException.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/ByteArrayWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/DoubleWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/FloatWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/IntWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/LongWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/PrimitiveWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/StringWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheck.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/health/IndexHealthCheck.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactory.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Module.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParser.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/ParallelSearcherFactory.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QueryDeserializer.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QuerySerializer.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/SimpleAsciiFoldingAnalyzer.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/resources/AnalyzeResource.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java create mode 100644 nouveau/src/main/resources/banner.txt create mode 100644 nouveau/src/main/resources/openapi.yaml create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/api/SearchRequestTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheckTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/health/IndexHealthCheckTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactoryTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParserTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/QuerySerializationTest.java create mode 100644 nouveau/src/test/resources/fixtures/DocumentUpdateRequest.json create mode 100644 nouveau/src/test/resources/fixtures/SearchRequest.json delete mode 100644 share/server/json2.js create mode 100644 share/server/nouveau.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/src/couch_disk_monitor.erl copy src/{couch_stats/src/couch_stats_sup.erl => couch/src/couch_lists.erl} (52%) create mode 100644 src/couch/test/eunit/couch_compress_tests.erl create mode 100644 src/couch/test/eunit/couch_hash_test.erl copy src/{couch_mrview/test/eunit/couch_mrview_http_tests.erl => couch/test/eunit/couch_lists_tests.erl} (55%) 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 create mode 100644 src/couch_dist/.gitignore create mode 100644 src/couch_dist/README.md create mode 100755 src/couch_dist/certs/certs create mode 100644 src/couch_dist/certs/certs.exs create mode 100755 src/couch_dist/certs/parse_cert.escript create mode 100755 src/couch_dist/gen_certs create mode 100644 src/couch_index/test/eunit/couch_index_crash_tests.erl create mode 100644 src/couch_prometheus/src/couch_prometheus.erl delete mode 100644 src/couch_prometheus/src/couch_prometheus_server.erl delete mode 100644 src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl create mode 100644 src/couch_replicator/test/eunit/couch_replicator_doc_ids_tests.erl delete mode 100644 src/couch_stats/src/couch_stats.hrl delete mode 100644 src/couch_stats/src/couch_stats_aggregator.erl create mode 100644 src/couch_stats/src/couch_stats_counter.erl create mode 100644 src/couch_stats/src/couch_stats_gauge.erl create mode 100644 src/couch_stats/src/couch_stats_histogram.erl create mode 100644 src/couch_stats/src/couch_stats_math.erl create mode 100644 src/couch_stats/src/couch_stats_server.erl create mode 100644 src/couch_stats/src/couch_stats_util.erl create mode 100644 src/docs/src/api/ddoc/nouveau.rst create mode 100644 src/docs/src/config/disk-monitor.rst create mode 100644 src/docs/src/cve/2023-26268.rst create mode 100644 src/docs/src/ddocs/nouveau.rst create mode 100644 src/docs/src/install/nouveau.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%) create mode 100644 src/exxhash/.gitignore copy src/{b64url => exxhash}/Makefile (100%) create mode 100644 src/exxhash/README.md create mode 100644 src/exxhash/c_src/exxhash.c create mode 100644 src/exxhash/c_src/xxhash.c create mode 100644 src/exxhash/c_src/xxhash.h create mode 100644 src/exxhash/rebar.config copy src/{couch_epi/src/couch_epi.hrl => exxhash/src/exxhash.app.src} (76%) create mode 100644 src/exxhash/src/exxhash.erl create mode 100644 src/exxhash/test/exxhash_tests.erl create mode 100644 src/fabric/src/fabric_bench.erl create mode 100644 src/fabric/test/eunit/fabric_bench_test.erl copy src/mango/src/{mango_cursor_text.erl => mango_cursor_nouveau.erl} (68%) copy src/mango/src/{mango_idx_text.erl => mango_idx_nouveau.erl} (94%) create mode 100644 src/mango/test/22-covering-index-test.py delete mode 100644 src/mango/test/README.md create mode 100644 src/nouveau/include/nouveau.hrl copy src/{chttpd => nouveau}/priv/stats_descriptions.cfg (64%) create mode 100644 src/nouveau/src/nouveau.app.src rename src/{couch_prometheus/src/couch_prometheus.hrl => nouveau/src/nouveau.erl} (70%) create mode 100644 src/nouveau/src/nouveau_api.erl create mode 100644 src/nouveau/src/nouveau_app.erl create mode 100644 src/nouveau/src/nouveau_bookmark.erl create mode 100644 src/nouveau/src/nouveau_epi.erl create mode 100644 src/nouveau/src/nouveau_fabric.erl create mode 100644 src/nouveau/src/nouveau_fabric_cleanup.erl create mode 100644 src/nouveau/src/nouveau_fabric_info.erl create mode 100644 src/nouveau/src/nouveau_fabric_search.erl create mode 100644 src/nouveau/src/nouveau_httpd.erl create mode 100644 src/nouveau/src/nouveau_httpd_handlers.erl create mode 100644 src/nouveau/src/nouveau_index_manager.erl create mode 100644 src/nouveau/src/nouveau_index_updater.erl copy src/{ddoc_cache/src/ddoc_cache_value.erl => nouveau/src/nouveau_plugin_couch_db.erl} (68%) create mode 100644 src/nouveau/src/nouveau_rpc.erl create mode 100644 src/nouveau/src/nouveau_sup.erl create mode 100644 src/nouveau/src/nouveau_util.erl create mode 100644 test/elixir/test/config/nouveau.elixir create mode 100644 test/elixir/test/config/search.elixir create mode 100644 test/elixir/test/disk_monitor.exs create mode 100644 test/elixir/test/nouveau_test.exs rename {src/dreyfus/test => test}/elixir/test/partition_search_test.exs (100%) rename {src/dreyfus/test => test}/elixir/test/search_test.exs (75%) create mode 100644 test/fixtures/allowed-xref.txt 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