On Sun, Oct 19, 2003 at 10:40:52AM -0700, Stas Bekman wrote:
> >But you can't get around noticing META.yml if the developer use CVS in 
> >combination with different versions of EU::MM.
> >
> >I had that problem with the SpamAssassin Makefile.PL: Processed it with a 
> >newer EU::MM and META.yml got added to the MANIFEST; accidently checked in 
> >that MANIFEST, another dev got errors because that file was missing for 
> >him. Tried to check in META.yml but noticed that it will change everytime 
> >somebody processes Makefile.PL so that file got a real annoyance, CVS-wise.

It doesn't change when Makefile.PL is run, only when "make distdir" is run
and that usually only happens when running "make dist" or "make disttest".

Observe.

[~/devel/ExtUtils-MakeMaker] ll META.yml 
-rw-r--r--    1 schwern  staff         470 Sep 18 09:11 META.yml
[~/devel/ExtUtils-MakeMaker] perl Makefile.PL 
Writing Makefile for ExtUtils::MakeMaker
[~/devel/ExtUtils-MakeMaker] ll META.yml 
-rw-r--r--    1 schwern  staff         470 Sep 18 09:11 META.yml
[~/devel/ExtUtils-MakeMaker] make
...blah blah blah...
[~/devel/ExtUtils-MakeMaker] ll META.yml 
-rw-r--r--    1 schwern  staff         470 Sep 18 09:11 META.yml
[~/devel/ExtUtils-MakeMaker] make test
...blah blah blah...
[~/devel/ExtUtils-MakeMaker] ll META.yml 
-rw-r--r--    1 schwern  staff         470 Sep 18 09:11 META.yml
[~/devel/ExtUtils-MakeMaker] make disttest
...blah blah blah...
[~/devel/ExtUtils-MakeMaker] ll META.yml 
-rw-r--r--    2 schwern  staff         470 Oct 19 15:32 META.yml

However, since I didn't change anything important to META.yml (like the
version or prereqs) the file is regenerated exactly the same.

[~/devel/ExtUtils-MakeMaker] cvs diff META.yml 
[~/devel/ExtUtils-MakeMaker] cvs commit META.yml 
[~/devel/ExtUtils-MakeMaker]

So as far as CVS is concerned, nothing has changed.  Unless you're
changing your distribution version or module prereqs very often, META.yml
shouldn't get in the way of CVS.

Anyhow, if META.yml was changing every time you ran Makefile.PL, it isn't
by MakeMaker.


> >In the end I just went the easy way and added NO_META. Oh, not really 
> >easy, had to add a workaround and remove that key on old EU::MMs again 
> >because else users get spurious warnings [1]... *sigh*

Yeah, that's a problem with that warning.  I'm thinking of removing it
in the name of forward compatibility.


> Yes, I have thought of this too. Michael, you say that you wanted to add 
> this new feature in a "stealth" manner, but the modification of MANIFEST is 
> what makes it visible.
> 
> One possible workaround is not to include META.yml in MANIFEST, but let MM 
> add it on the fly after reading MANIFEST if it's found in the root 
> directory and wasn't already listed in MANIFEST (which folks will do on 
> their own will, usually when they want to maintain it themselves).

There's slipping in a new feature without the authors having to make any
edits and then there's being downright underhanded. :)

This creates the existance of a file which isn't in the MANIFEST yet
gets shipped when you say "make dist" creating an exception to
what the MANIFEST does.  You now have a file that you can't stop shipping 
even if you remove it from the MANIFEST.


-- 
Michael G Schwern        [EMAIL PROTECTED]  http://www.pobox.com/~schwern/
If at first you don't succeed, call in an air strike.

Reply via email to