Splitting amavis: The master plan ;-)

Patrick Ben Koetter p at sys4.de
Tue Mar 26 22:14:42 CET 2019

Hi Markus,

* Markus Benning <ich at markusbenning.de>:
> Hi Patrick,
> i already implemented it in that branch:
> https://gitlab.com/amavis/amavis/tree/convert-cpan-distribution
> Am Montag, den 25.03.2019, 08:35 +0100 schrieb Patrick Ben Koetter:
> > = What do we split amavis into?
> It converts the source into an CPAN Distribution using the
> Dist::Zilla module builder.
> Dependencies are listed in the cpanfile.
> So you can install dependencies in the local/ folder by using
> $ carton install
> Then you can generate an Distribution tarball with:
> $ carton exec dzil build
> > = How do we split amavis?
> I did some scripting and extracted the packages into their
> load path according to the package name.
> Additional the Templates where converted into Templates.pm.
> > = Who will be affected?
> As the CPAN distribution lists all dependencies it can be simply
> be installed with cpanm including dependency resolution.
> Packager can use the defaults for packaging of perl-* modules.
> > = Where will we push the splitted version to?
> It can be released to CPAN using
> $ dzil release
> But there is still a lot of work left.
> There is still a lot of logic that relies on the order that was applied
> by the all-in-one approach. A lot of initialization happens at compile
> time inside of BEGIN. This should be refactored to do an explicit
> initialization in regular code execution.


> There are no tests.

I take it this simply because amavis was born in a time before unit tests etc.
came popular.

> There should be some basic unit tests.


IIRC Alexander Wirt mentioned his company had developed a test suite and he
wanted to contribute it.

> And there should be a test suite for acceptance testing.
> I would suggest using cucumber to describe the tests in gherkin.

Funny you mention that. It BDD seems to be all over the place nowadays. :)

> A tests can start up amavis with a test configuration, then interact
> with the server using the Test::SMTP client and then check the output
> by using Test::Mock::Net::Server::Mail.
> At the time i did the changes above i got almost no feedback if that
> changes would be welcome or likly to be merged so stopped working on
> it.

I apologize. I became maintainer and was stuck with other work to do. When I
finally got to pick up the loose ends quite some time had passed.

> Unfortunately currently i'm busy with other projects.
> I dont know if or when i find time to work on it.

We're in no hurry at the moment. Presuming others on amavis-devel agree we
will prepare a bug fix release first and then go for a major release that
brings the CPAN changes we discuss in this mail and reworked documentation.

p at rick

[*] sys4 AG
https://sys4.de, +49 (89) 30 90 46 64
Schleißheimer Straße 26/MG,80333 München
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263
Vorstand: Patrick Ben Koetter, Marc Schiffbauer, Wolfgang Stief
Aufsichtsratsvorsitzender: Florian Kirstein

More information about the amavis-devel mailing list