== [release-2-1-7] 2.1.7: 2022-09-28
=== Package
==== Improvements
* Added support for AlmaLinux 8.
* Added support for AlmaLinux 9.
* Dropped support for Ubuntu 18.04.
* Added support for Meson partially.
* deb: Added support for GObject Intospection.
=== All
==== Improvements
* Removed memory profile feature because (({g_mem_set_vtable()})) is
deprecated since GLib 2.46.
* Required GLib 2.50 or later.
* Added support for GObject Introspection.
* Introduced some API/ABI incompatible changes. So shared object
version was increased to (({2})) from (({0})).
* (({milter_macros_requests_foreach()})): Use (({MilterMacrosRequestFunc}))
instead of (({GHFunc})).
* (({milter_client_processing_context_foreach()})):
Use (({MilterClientContextFunc})) instead of (({GFunc})). (This
is only API incompatible.)
* Stopped bundling libev.
* Stopped bundling Ruby/GLib2, Ruby/GIO2 and Ruby/GObojectIntrospection.
=== milter core
==== Improvements
* Added (({milter_logger_get_default()})).
* Added (({milter_logger_log_literal()})).
=== milter client
==== Improvements
* (({MilterClientContext})):
* Added (({body-bytes})) and (({end-of-message-bytes})) signals to
receive chunk as a (({GBytes})).
* Added (({use-bytes})) property to use the above (({GBytes})) signals.
* Added (({milter_client_context_get_use_bytes()})).
* Added (({milter_client_context_set_use_bytes()})).
* Added (({milter_client_context_replace_body_bytes()})).
=== milter server
==== Improvements
* Added (({milter_test_server})) variable to (({milter-server.pc})).
* (({milter-test-server})):
* Changed to return non-zero exit code when
it failed to connect to a milter.
* Changed to use Postfix compatible (({i})) macro behavior by default.
* Before: (({i})) is sent on "MAIL" and "end-of-message".
* After: (({i})) is sent on "DATA", "end-of-header" and "end-of-message".
=== milter-manager-log-analyzer
==== Improvements
* Added support for Ruby 3.2.
=== Python
==== Improvements
* Added GObject Introspection based bindings. You can use Python to
implement your milter.