Re: [Module::Build] [PATCH] ppm_dist action
Status: Beta
Brought to you by:
kwilliams
|
From: Randy W. S. <Ra...@Th...> - 2004-01-15 05:58:33
|
On 1/15/2004 12:01 AM, Glenn Linderman wrote: > On approximately 1/14/2004 3:39 PM, came the following characters from > the keyboard of Randy W. Sims: > >> On 1/14/2004 11:09 AM, Glenn Linderman wrote: >> >> So, ppm install <your-module> does work ??? > > Yes that is correct. At least on my machine, with A::T 1.08_01. YeeHah!! Yipee!! Woohoo! > I still think A::T needs some work, such that archives with paths less > than 100 characters, and no paths greater than 100 characters, can be > compatible with older tools. Either than, or only older versions of > A::T should be used to build modules, so that the older tools work. blah! You had to mention that... >>> But why do I get errors during "perl build.pl" telling me that the >>> files built by the build step are not present at the "perl build.pl" >>> step? As far as I can determine, they shouldn't be. A similar >>> warning for META.yml and README showed up when I did "perl build.pl" >>> for the Module-Build.zip above. Such warnings do not engender >>> confidence in the module, or in the M::B process. >> >> Module::Build works the same in this regard as MakeMaker; in fact, >> they both use the same module, ExtUtils::Manifest. You probably know >> that every module on CPAN contains a MANIFEST file. This file contains >> a list of every file included in the CPAN distribution, and it is used >> as a sanity check to detect corrupted distributions (and absent-minded >> authors). One of the first things that happen when you type 'perl >> Build.PL' or 'perl Makefile.PL' is that the contents of the MANIFEST >> is compared to the contents of the directory where the distribution is >> unpacked. If there is a mismatch, you will see the warnings you noted >> above. > > Well, I don't know anything about MANIFEST except what M::B taught me by > reading its documentation and playing with it. And what you've told me > here. I've just about convinced my self to write (HA!) a rough HOW-TO to cover some of the most common scenarios of writing a 'Build.PL' script and how to invoke M::B. Although you would rather I didn't (trust me). >> As a module author you must keep the MANIFEST up to date. For >> Module::Build users, you need to create a 'MANIFEST.SKIP' file with at >> least the following contents: >> >> ^_build >> ^Build$ >> ^blib >> ^MANIFEST\.SKIP$ >> >> (Others are suggested in the Module::Build and the ExtUtils::Manifest >> pods.) > > > OK, so here I specifically added things from blib, because stuff wasn't > showing up in the "build dist" archive... lacking "build ppm_dist", I > was confused. I think now that you are saying that I should take them > out. I'll try that.... yep, it still works. And the warnings are gone. Great! >> The contents of the 'MANIFEST.SKIP' file are a series of regular >> expressions, one per line, that if matched to a file /path/ while >> scanning the distribution directory, will be omitted from the >> 'MANIFEST' file. (Maybe the above list should automatically be added >> to the skip list?) > > Yes, particularly if MANIFEST.SKIP doesn't exist, I think using that > list would be an excellant option. Many simple modules wouldn't even > need a MANIFEST.SKIP in that case. Can we? Can we? Please? huh? Can we? >>> I'm assuming that for distribution for PPM users, that I will never >>> need to use "perl build dist"... so the "differing content" in the >>> .tar.gz file build by "dist" vs "ppm_dist" won't annoy me... but will >>> it annoy others, that want to do both types of distributions? >> >> To be honest, I don't have an opinion about this issue. It would seem >> like authors should just know and should test each dist before >> release, so it shouldn't be an issue. I don't see any obvious >> alternative that I like. > > Well, I'm not educated enough in this area to suggest an alternative > either, at least with any assurance that it makes sense. I made one > suggestion about adding _CPAN and _PPD to the name of the file, and I > think I myself would be annoyed if all the distributoins had that tag. > But maybe... maybe this idea would have some merit... Well, I don't really like anything that's been suggested so far, nor do I like the current behaviour. I just don't see an elegant solution that doesn't involve some degree of confusion or inconvenience. May be it should be left up to the user by providing for arguments to the 'dist' and 'ppmdist' action that specify the location and name to use, but then you have to provide a default which brings us back to having no good solution. That's basically why I said I have no opinion--because all the alternatives seem rather yuckee to me. :-) Randy. |