Module::Build generates a metadata file, META.yaml, which contains some basic information about the module that normally you'd have to grope around inside the code to look for. Name, version, dependencies, etc... Sort of like the description file in the rpm or dpkg formats.
It hit me while raking leaves today that it would be absolutely *trivial* for MakeMaker to do the same. All the meta-data already exists in the MakeMaker object. All that's needed to be done is spit out the file. If the module author has the YAML module [1] installed, 'make distdir' (and thus 'make dist') will, by default, spit out a META.yml file [2]. It will warn if its not in the MANIFEST. This way we can start perniciously filling up CPAN with basic meta-data without authors having to think about it. [3] We're following Module::Build's lead here and using its formats and decisions as much as possible. (Un|)fortuately, its all very flexible and somewhat undocumented at the moment. So we're going to be making things up as we go along. When trying to figure out fields for the META.yml file, a nice point of reference to use is dpkg and the Debian Policy Manual http://www.debian.org/doc/debian-policy/ They've solved a lot of the hard packaging problems. [1] If anyone starts arguing about the format (YAML vs XML vs sanskrit vs ....) I will display your head on a pike on the road leading to MakeMaker.org as a warning to others. [2] I can't see a serious objection to it. Of course, someone will object anyway so if they don't want it they can pass in a "NO_META" argument to WriteMakefile() or something. They can also provide the patch to do so. [3] Module::Build uses META.yaml. We have to use .yml for 8.3 filesystems. Ken, can Module::Build be changed to match? -- Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/ Perl Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One Home of da bomb
