Subject: [ANNOUNCE] public-inbox 1.3.0
From: Eric Wong <[email-masked]>
To: [email-masked]
Date: Mon, 10 Feb 2020 05:52:41 +0000

Many internal improvements to improve the developer experience,
long-term maintainability, ease-of-installation and compatibility.
There are also several bugfixes.

Some of the internal improvements involve avoiding Perl startup
time in tests.  "make check" now runs about 50% faster than
before, and the new "make check-run" can be around 30% faster
than "make check" after being primed by "make check".

Most closures (anonymous subroutines) are purged from the
-nntpd, -httpd and WWW code paths to make checking for memory
leaks easier.

* documentation now builds on BSD make

* Date::Parse (TimeDate CPAN distribution) is now optional, allowing
  installation from OpenBSD systems via "pkg".

* the work-in-progress Xapian.pm SWIG bindings are now supported
  in addition to the traditional Search::Xapian XS bindings.
  Only the SWIG bindings are packaged for OpenBSD.

* Plack is optional for users who wish to avoid web-related components

* Filesys::Notify::Simple is optional for non-watch users
  (but Plack will still pull it in)

* improved internal error checking and reporting in numerous places

* fixed Perl 5.10.1 compatibility (tested with Devel::PatchPerl)

* IPC::Run and XML::Feed are no longer used in tests,
  though XML::TreePP becomes an optional test dependency.

* Email::Address::XS used if available (newer Email::MIME
  requires it), it should handle more corner cases.

* PublicInbox::WWW:
  - "nested" search results page now shows relevancy percentages
  - many solver bugs fixed
  - solver works on "-U0" patches using "git apply --unidiff-zero"
  - solver now compatible with git < v1.8.5 (but >= v1.8.0)
  - raw HTML no longer shown inline in multipart/alternative messages
    (v1.2.0 regression)
  - reduced memory usage for displaying multipart messages
  - static file responses support Last-Modified/If-Modified-Since
  - avoid trailing underlines in diffstat linkification
  - more consistent handling of messages without Subjects

* public-inbox-httpd / public-inbox-nntpd:
  - MSG_MORE used consistently in long responses
  - fixed IO::KQueue usage on *BSDs
  - listen sockets are closed immediately on graceful shutdown
  - missed signals avoided with signalfd or EVFILT_SIGNAL
  - Linux x32 ABI support

* public-inbox-nntpd:
  - Y2020 workaround for Time::Local

* public-inbox-watch:
  - avoid memory leak from cyclic reference on SIGHUP
  - fix documentation of publicinboxwatch.watchspam

* public-inbox-convert:
  - avoid article number jumps when converting indexed v1 inboxes

* public-inbox-compact / public-inbox-xcpdb:
  - concurrent invocations of -compact and -xcpdb commands,
    not just -mda, -watch, -learn, -purge

* examples/unsubscribe.milter:
  - support unique mailto: unsubscribe

Release tarball available for download at:

https://public-inbox.org/public-inbox.git/snapshot/public-inbox-1.3.0.tar.gz

Please report bugs via plain-text mail to: [email-masked]

See archives at https://public-inbox.org/meta/ for all history.
See https://public-inbox.org/TODO for what the future holds.