removal of dependencies for stripped-down or full setups. See
install/README for more details.
+ devel/try-lei now exists for testing out an empty lei instance
+ without writing to an existing one.
+
treewide
* support raw UTF-8 headers from SMTPUTF8 hosts
recommended to reduce fragmentation in glibc malloc, while jemalloc
(tested as an LD_PRELOAD) is another option (at least for 64-bit).
+ * embrace ->DESTROY in more places for control flow and reliability
+
PublicInbox::WWW
* support `+' in inbox names
* `lei index' accepts `+L:$LABEL' like `lei import' does
+ * fix several reliability problems with `lei import'
+
solver (used by lei (rediff|blob), and PublicInbox::WWW)
* handle copies in patches properly
* no longer redundantly parallelized within each WWW process
+ * improve ambiguous OID debug messages
+
portability
* SIGWINCH is handled properly on less common architectures and OSes
a C++ compiler, pkg-config, and the Xapian development files
(see INSTALL).
- This C++ helper will be used more heavily in the future
- to enable query parser customizations and other functionality
- unavailable from the Xapian SWIG or XS bindings.
+ * -X/--xapian-helpers may be specified for public-facing daemons
+ to use aforementioned C++ helper (or SWIG/XS fallback) to avoid
+ expensive searches blocking non-search HTTP and IMAP requests.
+
+ * the aforementioned C++ helper supports `thread:{SUBQUERY}' and
+ queries `thread:MSGID' like notmuch(1)
+
+ * --reindex and long-running (ext)index operations will auto
+ checkpoint every 5s to avoid SQLite timeouts in public-facing
+ frontends where SQLite WAL isn't possible.
+
+public-inbox-daemon (-netd, -imapd, -httpd, -nntpd, -pop3d)
+
+ * per-listener servername=, serverport=, and multi-accept=
+ parameters, --multi-accept= is also supported globally for
+ all listeners.
+
+ * listen(2) backlog no longer overridden when inheriting listeners
+ at startup, respecting `Backlog=' in systemd.socket(5)
+
+ * premature HTTP client disconnects are detected on expensive
+ requests (e.g. solver) and can be logged as 499 (like nginx)
+ using Plack::Middleware::AccessLog(::Timed).
Thanks to all the bug reporters and users who made this release
possible, and thanks for bearing with my anxiety over making releases.
* imperfect scraper importers for obfuscated list archives
(e.g. obfuscated Mailman stuff, Google Groups, etc...)
-* improve performance and avoid head-of-line blocking on slow storage
- (done for most git blob retrievals, Xapian needs work)
-
-* allow optional use of separate Xapian worker process to implement
- timeouts and avoid head-of-line blocking problems. Consider
- just-ahead-of-time builds to take advantage of custom date parsers
- (approxidate) and other features not available to Perl bindings.
-
-* integrate git approxidate parsing into Xapian w/o spawning git
-
* HTTP(S) search API (likely JMAP, but GraphQL could be an option)
It should support git-specific prefixes (dfpre:, dfpost:, dfn:, etc)
as extensions. If JMAP, it should have HTTP(S) analogues to
* git SHA-256 migration/coexistence path
* decode RFC 3676 format=flowed + DelSp properly (see mflow (mblaze), mutt, ...)
+
+* ActivityPub support
+ https://public-inbox.org/meta/20240428175814.M304854@dcvr/
+ https://public-inbox.org/meta/20250327224143.M385019@dcvr/