> I may have an extreme view on this, but... Systems that re-use the same
> module in lots of other different modules tend to annoy me, because the
> author hasn't thought out what needs to be imported when - instead
> they've just fired a shotgun blast of use statements around until things
> stopped erroring out. It's also nice to have terse code.

You mean the author is writing clear code that says "this module
explicitly uses this module" instead of letting the reader make
assumptions?  

I'll just say this directly so we can get it out of the way:
  I think you're wrong

> 
> > Putting complex logic in the tester, or duplicating that logic is a
> > bad idea.
> >   
> I don't see what's complex about adding a "use Qpsmtpd::Constants;\n" to
> the block to be eval'd from the test script. As I pointed out before,
> not all plugins are in svn and we don't want to fail them for doing
> things this way. So, since it's a simple change to support these cases
> as well, the best solution is to be consistent and drop the use
> statement everywhere except the test script for uniformity.

Because it means we can never remove it.  

Nobody said anything about failing anything if they don't do it this
way.  At least for the foreseeable future we're not going to require
anything extra in the plugins if you don't want to add it.  We may go
the extra mile in the core, but that doesn't mean you need to do it
for your own plugins.

We have been moving towards "plugin is a class" for a while now.  It's
clearer, more uniform, and much easier to understand.

-R

Reply via email to