Skip to content

Conversation

@nickva
Copy link
Contributor

@nickva nickva commented Oct 30, 2025

Prepare 3.5.1 release. See whatsnew in docs for more details.

Summary:

  • Debian Trixie support
  • Lots of optimizations most internal (btree cache, rev parsing, purge speedups)
  • Lots of Nouveau fixes
  • Add ability to downgrade to this version from any higher version on header field appends
  • Fixes to the scanner so users can scan for QuickJS compat issues
  • New UUID algorithm available but default stays as before (will change in 3.6)
  • Lots of QuickJS upstream fixes: faster strings, context init speedups, bug fixes

This is an amalgamated PR with all the commits from #5723

Copy link
Contributor

@jiahuili430 jiahuili430 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Thank you for adding so many features and creating the release!

This is an amalgamated commit from these commits:

edit d6e284e # Protect 3.5.x branch
fixup 0b85b41 # dev/run: complete Erlang cookie configuration
fixup 9cd7752 # No cfile support for 32bit systems
fixup 8ae40d8 # Update QuickJS: FP16 support, regex escape compat
fixup 942c94e # Fix mem3_util overlapping shards
fixup c6fc3cb # Always allow mem3_rep checkpoints
fixup 5693d72 # Add retries to native full CI stage
fixup 1fe50d7 # Ignore extraneous cookie in replicator session plugin
fixup 03f0acc # Enable Clouseau for the Windows CI
fixup 0da8cf2 # Bump Clouseau to 2.25.0
fixup ed763ef # Bump process limit to 1M
fixup 234a01f # doc: add https to allowed replication proxy protocols
fixup 859fbcd # Improve `couch_debug.erl` (#5542)
fixup fa2d524 # Fix config key typo in mem3_reshard_dbdoc
fixup fdb7cc1 # Fix reshard doc section name
fixup 7397df5 # Don't spawn more than one init_delete_dir instance
fixup 65f97ae # Improve init_delete_dir
fixup 6e88530 # QuickJS update
fixup 88f424c # Improve `clouseau_rpc.erl`
fixup 0c6237e # Handle shard opener tables not being initializes better
fixup dc9837f # Improve mem3 supervisor
fixup 2574fd1 # Improve cluster startup logging
fixup adbc948 # Fix QuickJS bigint heap overflow
fixup 3cfd7e4 # Handle `bad_generator` and `case_clause` in ken_server
fixup 7ef02ab # Improve replicator client mailbox flush
fixup 20701cb # Add guards to `fabric:design_docs/1` to prevent function_clause error
fixup b2cbfb8 # Bump requests to 2.32.4 and set trust_env=False
fixup 0047834 # Set Erlang/OTP 26 as minimum supported version
fixup 8700799 # Use the built-in binary hex encode
fixup fff371b # Use maps comprehensions and generators in a few places
fixup cedeb73 # doc: add AI policy h/t @dch
fixup 7a8e19e # Remove lto for quickjs
fixup a179d0c # Skip macos CI for now and remove Ubuntu Focal
fixup 02e2930 # Upgrade Erlang for CI
fixup 5ee3d73 # Remove a few more instances of Ubuntu Focal
fixup 1a58a1c # Update QuickJS
fixup 6e0e8f3 # Run test262 JS conformance tests for QuickJS
fixup bd0139e # Document how to mitigate high memory usage in docker
fixup 1b62f06 # wip suggestion for fsync pr
fixup 5e658d3 # Add tests for write_header/3 with [sync]
fixup ce10423 # Use couch_file:write_header(., [sync]) in couch_bt_engine:commit_data/1
fixup 8f2c253 # docs/replication: change unauthorized example to 401
fixup aae623b # Don't wait indefinitely for replication jobs to stop
fixup e3e445f # Improve mem3_rep:find_source_seq/4 logging
fixup 58c5614 # fix couch_util:set_value/3
fixup 2cf6e55 # Populate zone from `COUCHDB_ZONE` env variable
fixup febba3e # update docs
fixup 66ed283 # Avoid making a mess in the logs when stopping replicator app
fixup a5db313 # Make replicator shutdown a bit more orderly
fixup 786dc5d # Fix query args parsing during cluster upgrades
fixup 9b2c1fe # Print the name of the failed property test
fixup c609d47 # nouveau: use http/2
fixup 4d24a70 # chore(docs): avoid master wording at setup cluster
fixup 074e3a4 # don't start gun if nouveau disabled
fixup 2fc406b # address PR feedback - move state to gen_server
fixup b7adda9 # use ASF fork of gun for cowlib dep
fixup 25acff4 # fix CI
fixup 66996a1 # docs: securing nouveau on http/2
fixup b936d99 # Increase some test timeouts to hopefully fix a flaky PPC64LE test
fixup e5175d1 # Add a range_to_hex/1 utility function
fixup 540ca24 # Improve scanner performance
fixup bdc7904 # Stop replication jobs to nodes which are not part of the cluster
fixup b22adbb # In the scanner, traverse docs by sequence instead of by ID.
fixup 27888d9 # DRY out couch_bt_engine header pointer term access
fixup d25ff91 # Implement the ability to downgrade CouchDB versions
fixup f8c5938 # allow stale queries
fixup a2ae7e3 # optimize searches when index is fresh
fixup 2e49f74 # stale test
fixup 35f3d4f # Use copy_props in the compactor instead of set_props
fixup bf8f489 # Minor couch_btree refactoring
fixup bb20830 # retry if no connection available
fixup 36b19b4 # switch to couch_util:to_hex_bin
fixup 0c15f0f # gun takes iodata so no need for io_lib or flatten
fixup 7a15840 # QuickJS Update
fixup 8c3df03 # include rev when scanning
fixup 866348c # Avoid timeouts in ddoc scanner callback
fixup 044f746 # enhance _nouveau_cleanup
fixup 89b42ab # BTree engine term cache
fixup 6568e2a # Use config:get_integer/3 in couch_btree
fixup 6fb33ba # Fix and improve couch_btree testing
fixup d4f4211 # Prevent B-tree duplicate entries. Add property tests.
fixup 9db197a # Reduce btree prop test count a bit
fixup 29518a4 # Use OS certificates for replication
fixup 8f086d1 # Allow user to customize the `Timeout` threshold for checking search services
fixup df2ff63 # Remove redundant *_to_list / list_to_* conversion
fixup 4a6ce81 # Fix reduce_limit = log feature
fixup 5ccfa2e # Configure ELP
fixup 00b6849 # Add write limiting to the scanner
fixup 2802610 # Upgrade erlfmt and rebar3
fixup 0cc1ba4 # Implement prop updates for shards
fixup 29f3992 # Document that _all_dbs endpoint supports inclusive_end query param
fixup 8db6286 # Retry call to dreyfus index on noproc errors
fixup a0b43b1 # Remove absolete clauses from dreyfus
fixup f51f608 # Remove pointless message
fixup 0e15915 # Add delay before retry
fixup e4979be # dev: support multiarch names (Debian based systems) (#5626)
fixup 3bf07be # Use upgraded Erlang CI images
fixup 3969b40 # fix homebrew spidermonkey build
fixup d174005 # fix centos/freebsd build
fixup 030bb8f # Unify CI jobs
fixup 2a96d0f # Remove old Jenkinsfiles
fixup 4208633 # more informative error if epochs out of order
fixup c3c98e2 # Disable ppc64le and s390x builds
fixup 3444f52 # Add Trixie to CI
fixup e1c60c3 # Update mochiweb to v3.3.0
fixup b2a5a93 # Update xxHash
fixup 7a32ab7 # Update QuickJS
fixup 7bcf1a5 # fix make clean after dev/run --enable-tls
fixup 3754deb # Cache and store mem3 shard properties in one place only
fixup 2caf341 # Print request/response body on errors from mango test suite
fixup 8ab2dbc # Add setup documentation for two factor authentication (#5674)
fixup fffa62e # Replace `gen_server:format_status/2` with `format_status/1`
fixup c52d67d # Fix config options (#5642)
fixup 01520a6 # Handle plugin stops without crashing
fixup e65aa5e # Reschedule scanner plugins if they return skip on start or resume
fixup 55b5327 # feat(configure): add --disable-spidermonkey to --dev[-with-nouveau]
fixup 4f7f46f # Implement db doc updating
fixup ba771b4 # Update QuickJS
fixup 7066c8e # doc: update install instructions
fixup 1908ea2 # Fix run_on_first_node scanner features
fixup ee2bfe8 # Sequestrate docker ARM builds and fail early
fixup 0266498 # Handle timeout in `dreyfus_fabric_search:go`
fixup abe1f6e # Fix props caching in mem3
fixup 1eb2ea5 # QuickJS Update
fixup 31de49a # Fix `case_clause` when got `missing_target` error
fixup dac11b2 # Remove `erlang:` prefix from `erlang:error()`
fixup d002480 # Remove explicit erlang module prefix for auto-imported functions
fixup d377697 # Add assert comments to search related elixir tests
fixup 0a1e264 # Implement 'assert_on_status' macro
fixup 6396568 # More QuickJS Optimization
fixup 55fc7cb # Tighten the rules for parsing time periods
fixup 2fc64fd # Add UUID v7
fixup 66a053c # Optimize purge
fixup 7c33b28 # Replace `dbg:stop_clear/0` with `dbg:stop/0`
fixup 7ada539 # Optimize revid parsing: 50-90% faster
fixup cc27d73 # Use determistic doc IDs in Mango key test
fixup 83aa0da # Docs: Update the /_up endpoint docs to include status response's
fixup 3b05609 # Remove purge max_document_id_number and change max_revisions_number
fixup 3ecef04 # Update QuickJS: faster context creation and faster dbuf
fixup e76a8b6 # Increase timeout for `process_response/3` to fix flaky tests
fixup 416e077 # QuickJS Update. Optimized string operations.
fixup 2903cd5 # improve search test
fixup 2a9c1bd # Avoid using function closures in mem3
fixup 76577f3 # Optimize purge. ~30% for large batches.
fixup 0182fd1 # Improve index cleanup
fixup c543a88 # Cleanup fabric r/w parameter handling
fixup 743312c # Remove hastings references
fixup 74039c4 # Do not check for dreyfus
fixup db57168 # fixup: remove HAVE_DREYFUS refs
fixup 458bc0d # Update elp toml file
fixup e3583db # Use "all" ring options for purged_infos
fixup 39cb8c5 # Update deps: fauxton, meck and proper
fixup 516df23 # Fix typo in .elp.toml
fixup 53a6db7 # Ignore design docs in the shards db in the scanner
fixup da9afabb9 # Update Quickjs: optimize global var access, fix use-after-free error
fixup df9a9a732 # Fix a few regressions recent updates
fixup c71e71730 # parameterise reduce_limit threshold and ratio
Whatsnew and other fixes
@nickva nickva force-pushed the pre-3.5.1-amalgam branch from 77269bc to 51339d4 Compare November 5, 2025 21:57
@nickva nickva merged commit 44f6a43 into 3.5.x Nov 6, 2025
52 checks passed
@nickva nickva deleted the pre-3.5.1-amalgam branch November 6, 2025 00:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants