CCing in [EMAIL PROTECTED] Please reply to this copy so both lists get the mail.
------ Forwarded message ------ From: Steven Schubiger <[EMAIL PROTECTED]> Subject: proposal: Module::Build extension, ExtUtils::MakeMaker -> Module::Build transition, improving tools Date: Sat, 9 Apr 2005 07:03:03 +0200 (CEST) To: [EMAIL PROTECTED] Reply-To: Steven Schubiger <[EMAIL PROTECTED]> Name Steven P. Schubiger Location Switzerland Email <[EMAIL PROTECTED]> Synopsis Module::Build extension, ExtUtils::MakeMaker -> Module::Build transition, improving according tools Deliverables 1) Make Module::Build ready to be integrated in the core 2) Improve CPAN::Metadata 3) Extend make2build 4) Lecture on major changes between E::MM and M::B and introduce static conversion via make2build; likely, at Austrian Perl Workshop, if of any interest, at YAPC::NA and swiss, austrian, german and french perl monger groups. 5) Change ExtUtils:MM wherever Module::Build can benefit from. Benefits to the Perl Community Getting faster rid of the ugly, overly bloated ExtUtils::MakeMaker Extending the facilities of Module::Build Introduce the conversion via make2build Project Details 1) * Adding arbitrary metadata. Possibly completing and integrating CPAN::Metadata? * Formally update the META.yml spec. This needs to be done before perl core integration. * Extending the diff action ~ * Improve dependencies mini language - dEx (Dependency EXpression language) * Other refactoring? * Issues listed in RT 2) Major areas are: 1. The META.yml spec needs to be formally updated. The original spec[1] is version 1.0. We need a revision that incorporates (or eliminates) fields currently in use that do not appear in the version 1.0 spec. Fields in current use can be gathered from statistics gathered a few months back[2]. Other fields that should probably be included in some form are meta-spec[3], abstract[4], index & no_index[5], deprecation of private & public[6], and resources[7]. Approval of the spec and the funtionality of CPAN::Metadata is ultimately up to the Module::Build group, mainly Ken and Michael, but input from p5p, module-authors, is probably a good idea. 2. The new version 1.1 needs to be codified so that the entries are checked for correctness, requirements are satisfied, etc. See the docs in CPAN::Metadata::Spec::Base, and partial implementations in CPAN::Metadata::Spec::1R0 and CPAN::Metadata::Spec::1R1. 3. CPAN::Metadata::Versions was copied almost verbatim from Module::Build::Base. Some of which has been replaced by a more robust implementation in Module::Build::ModuleInfo. Both implementations are problematic in that they eval the $VERSION line. As noted from the discussion on p5p this is not safe. CPAN::Metadata should use Safe.pm the way the CPAN indexer currently does, so that the CPAN indexer code for this can be replaced by CPAN::Metadata. I'd suggest using Module::Info and patching it where needed, but I believe it also has the same shortcoming, evaling the code. 4. It would be nice to have CPAN::Metadata write META.yml files without the requirement on YAML. For the simple, mostly fixed format of META.yml this shouldn't be too difficult. 5. Integrate with Module::Build. Module::Build can first try CPAN::Metadata, falling back to YAML and then the manual minimal spec file. See Module::Build::Base, methods ACTION_distmeta(), _write_minimal_metadata(), and prepare_metadata(). 3) make2build is a static converter that transforms existing Makefile.PL's to barebone Build.PL's. I'd like to extend the arguments being transformed, as well as introducing some Module::Build "defaults" with a prompt mechanism, whenever an user is present, and defaulting to defaults, whenever absent. I'd also appreciate lecturing on it, since it seems to be fairly unknown, since it didn't get its mention. 4) The topic goes right to the point, as there is not much more, that I'd like to add, as of now. I could definitely outline some basic information, if you'd like so. 5) I know that there are existing issues, but I have to contact their maintainers therefore. Project Schedule I'd assume, it's appropriate to assign it to a quarter, since a) quite a few people are working on the transition b) CPAN::Metadata is likely to be sufficiently extended at one point c) there aren't too many "local" perl mongers Bio Who are you? Uhm, interesting question, I have to admit. I'm a UNIX, programming (C, Perl, Shell, Assembler) & open source "fanatic". I've been programming 7+ years Perl, written a handful modules and introduced myself to various perl lists 2+ years ago; among these are perl5-porters, perl-qa, perl6-compiler, perl6-internals and perl6-language. Some patches to perl5-porters have been contributed over the time, mostly to core modules & docs. Currently, I'm a freelance programmer/sysadmin, consuming roughly 75% of my time. Besides that, I do volunteer programming work on GNU coreutils, procmail, pf and tar. Recently, I've been admitted as GNU id-utils maintainer. I'm the current vice president of the Linux User Group Switzerland, promoted for the duration of one year. What makes you the best person to work on this project? I never said so. In fact, I'm interested in seeing the transition progressing, but perhaps Ken Williams or Michael G. Schwern would be supposedly competenter people, since they know all of the guts, as I admittedly don't, but a) I can read sources, b) as far as I can tell, they have regular daytime-jobs. Amount Requested Uhm, I have no idea, whatever suffices for one quarter and travel expenses. Steven