Hi,

This summary, like any summary, is most appreciated. It helps me to clarify where I see things differently, though I agree with some of what's being said here.



On 2/16/06, Tels <[EMAIL PROTECTED]> wrote:

For any module, especially the ones for installing other modules (e.g.
M::B, EUMM, M::I and CPAN) there are three (not nec. distinctive) crowds:

  * A - the original source code author and maintainer.[0]
* D - developers, e.g. other people who want (or must, via dependencies)
    use the module in their code. Often includes A, too.
  * U - mere users, who just want (or must, see above) to _use_ the
    module's functionality. Can also include A and D.

Fact of the Day:
Any module which wants to replace the current build system (EUMM) must
 please[8] all three crowds or it will fail.[1]

M::B is of course trying to please all three of A, D, and U. I had hoped that would be obvious, but in case it's not, I'm re-stating it.



Pleasing U does, among other things, require to solve the chicken-egg
problem.


Well, M::B is a chicken which knows how to lay itself as an egg. And CPAN and CPANPLUS or whatever tool know how to install M::B because it ships with both a Build.PL and a Makefile.PL and has since nearly day one. So at the top of the dependency tree there's a terminus.

The issue is thus reduced to making sure other distributions can declare their dependency on M::B in a way that the tools will recognize. M::B::Compat is our current solution for this. It generates three different kinds of Makefile.PLs for authors to include with their distributions. We've put a lot of work into them, which should be Exhibit A for showing that we care about such users. I'm sure we can improve our tools, but I do want to make it clear that they exist and have since April of 2002.


What Module::Build claims is that it pleases A and D. From that is infered
that U will also be automatically pleased.

I have never ever made such an assertion. I do understand that there are issues U considers critical that A and D don't really care much about (unless they're wearing their U hats).

Also, we do indeed try to please U in M::B. Witness for example the 'diff' action, and the fact that a huge motivator for the entire project for me is to be able to generate *good* rpms/debs/ppms/etc for any M::B-using CPAN module. There's an immense infrastructure necessary to do that well, and probably A and D will never care about it at all.

Who is making such an inference, anyway?


So, we have critism from U about not being pleased (Adam writes about
this, for instance). To this there are responses along the lines:

* U might be displeased or not, but D is very pleased[4]:
  http://tinyurl.com/du7yc
  Bzzzt. Wrong answer.

It's here that you lose me. I don't know if "Bzzzt. Wrong answer" and the advocacy in the rest of the message is really "summary" fodder.

Anyway, we've identified some things about the Makefile.PLs that can be improved. We'll do so.

Specific issues we can fix, or at least identify, are great. But I resent some of the implications going around that our whole philosophy of the project is wrong, or that somehow we're evil for wanting to create and release a better build system. These things are complicated, and if some area is substandard that's because it needs tuits, not because we don't care about our users.

 -Ken

Reply via email to