Re: 'make dist' now adds META.yml

2003-03-08 Thread Jochen Wiedmann

Hi,

 On Friday, March 7, 2003, at 03:04  AM, [EMAIL PROTECTED] wrote:
  Forgive my terseness, but this discussion has already been done in

I wholeheartly understand your terseness. In fact it was what I
expected. That's why my first sentence was to apologize. However,
I still disagree and I think the task of a mailing list is to
allow me expressing my opinions.


Quoting Ken Williams [EMAIL PROTECTED]:

 For those that want to see a previous incarnation of this discussion, 
 see
 
   http://archive.develooper.com/[EMAIL PROTECTED]/msg00405.html

thanks for the pointer Ken. I have carefully read the thread
and found nothing that convinced me. In fact I have missed some
arguments:

- data files generated by Data::Dumper can be evaluated in a
  Safe compartment.
- An XML Writer would be required by the module author only.
  An XML Reader is already part present on most systems, with
  a definitely growing number.
- I recently started to have a look at Module::Build and I
  wholehearty support it: In particular, because it will finally
  simplify module installation on Windows and commercial Unix
  systems, where one typically doesn't have a C development
  environment. But my guess its most important problem for
  acceptance will be its dependence on esoteric modules like
  YAML or ExtUtils::ParseXS. (Esoteric == not part of the
  ActiveState repository, aka target group) *I* (module
  author) had no problem installing  these prerequisites,
  but I wouldn't like to receive 10 emails a week asking
  How do I install these modules?
- You think XML isn't human readable? What do you expect
  the typical joe user to do, if she or he finds an unknown
  file? Double-clicking it! In the case of XML that means,
  that a properly configured browser opens the file, formats
  it nicely, highlights tags, offers to hide or view sections.
- You happy guys seem to live in a Perl-only world. My Envy!
  I don't and most other peoples also do. However, in a
  heterogenous world, a portable data format is worth much
  more than a data format that requires me to write a parser.


Jochen



Re: 'make dist' now adds META.yml

2003-03-08 Thread Ken Williams
On Saturday, March 8, 2003, at 11:41  AM, Jochen Wiedmann wrote:
thanks for the pointer Ken. I have carefully read the thread
and found nothing that convinced me. In fact I have missed some
arguments:
- data files generated by Data::Dumper can be evaluated in a
  Safe compartment.
It's not malicious code we're (at least, I'm) worried about, it's the  
fact that code is being eval-ed.  As soon as you make it eval-able perl  
code instead of a static data definition language, someone is going to  
put something like

 ($^O =~ /Win/ ? Foo::Win32 : Foo::Generic)

in there, and now we don't have a static list of dependencies anymore.   
If it's not static, what's the point in extracting it out of the  
Makefile.PL?

That said, malicious code is probably a real issue too, because these  
files shouldn't be able to *do* anything, they should just contain some  
data.  The hope is that these files will be used in lots and lots of  
situations by lots of different parties, and we can't make sure *all*  
of them use Safe.pm in a tight way.  Nor is Safe.pm very tight in the  
first place.  One need only look at the following to see why:

  
http://search.cpan.org/author/ABERGMAN/Safe-2.09/ 
Safe.pm#Some_Safety_Issues


- An XML Writer would be required by the module author only.
  An XML Reader is already part present on most systems, with
  a definitely growing number.
I'm not eager to write the code that senses around for whatever weird  
XML reader might be present on whatever weird system, though.  And this  
says nothing about systems that were built and deployed three years  
ago, which won't have one unless we require them to install it.

- I recently started to have a look at Module::Build and I
  wholehearty support it: In particular, because it will finally
  simplify module installation on Windows and commercial Unix
  systems, where one typically doesn't have a C development
  environment. But my guess its most important problem for
  acceptance will be its dependence on esoteric modules like
  YAML or ExtUtils::ParseXS. (Esoteric == not part of the
  ActiveState repository, aka target group) *I* (module
  author) had no problem installing  these prerequisites,
  but I wouldn't like to receive 10 emails a week asking
  How do I install these modules?
I agree completely with these sentiments.  If you look at the actual  
list of required dependencies for Module::Build, you'll see that  
they're all present in the perl 5.6.0 core.  The other things like YAML  
and ParseXS are only *recommended* dependencies, but unfortunately  
CPAN.pm reports them as required.

(actually, this might be fixable in Module::Build rather than requiring  
a CPAN.pm patch.)

Note that M::B can use either the regular xsubpp script in core perl,  
or ExtUtils::ParseXS, which is a safer and more compartmentalized way  
to achieve the same thing.

In any case though, for the M::B project to move forward and do things  
that MakeMaker hasn't been able to do easily, it may require people to  
install some more modules.


- You think XML isn't human readable? What do you expect
  the typical joe user to do, if she or he finds an unknown
  file? Double-clicking it! In the case of XML that means,
  that a properly configured browser opens the file, formats
  it nicely, highlights tags, offers to hide or view sections.
That's true.  I'm not sure I expect someone who doesn't know how to  
read a simple text file to be poking around in Perl module source  
directories much, though.

- You happy guys seem to live in a Perl-only world. My Envy!
  I don't and most other peoples also do. However, in a
  heterogenous world, a portable data format is worth much
  more than a data format that requires me to write a parser.
Why in the world would you be required to write a parser??

Your arguments seem to be sort of against YAML in the abstract - do you  
have a particular application involving the META.yml file that is going  
to be more difficult because of the choices that have been made?

I do appreciate your point of view, but I can also tell you that for  
every person that asks why we're not using XML for this, there's  
another person who's written me telling me how glad he/she is that  
we're not.

 -Ken



Re: 'make dist' now adds META.yml

2003-03-08 Thread schwern
On Sat, Mar 08, 2003 at 07:25:16PM +0100, Jochen Wiedmann wrote:
 Quoting Ken Williams [EMAIL PROTECTED]:
 
  Why in the world would you be required to write a parser??
 
 Because I possibly would want to read these files automatically?
 Your original posting explicitly stated that this is just what
 they are made for.

*You* do not need to write a parser.  Parsers are already written.

perl -MYAML -e 'print Dumper YAML::LoadFile(META.yml)'

Perl
http://search.cpan.org/author/INGY/YAML-0.35/

Python
http://wiki.yaml.org/yamlwiki/PurePythonParserForYaml

Ruby
http://yaml4r.sourceforge.net/


  I do appreciate your point of view, but I can also tell you that for  
  every person that asks why we're not using XML for this, there's  
  another person who's written me telling me how glad he/she is that  
  we're not.
 
 I absolutely believe that. The difference is, that in 2 or
 3 years, when an XML parser (however wierd) will be installed
 on any uptodate Perl system, noone will ask Why are we using
 XML and not YAML?. In the contrary case the question will
 stick forever, because you have a lot of users as stupid as
 me. It doesn't take much prophecy to foresee that.

Its popular is not a compelling argument.  Otherwise we'd all be using
Java and XML on Intel machines running Windows and nobody would be bothering
with Module::Build we'd just be clunking along with MakeMaker.  If all
things were equal between YAML and XML then yes, we'd go with the more
popular one.  But they're not equal and popularity doesn't weigh much.

We must have the courage to try new things if we think they will work out 
better.


Re: 'make dist' now adds META.yml

2003-03-07 Thread schwern
On Thu, Mar 06, 2003 at 10:03:27AM -0600, Ken Williams wrote:
 Well, some modules are core in 5.8 but not in 5.6, etc., so this 
 wouldn't reflect reality on many systems.  How about we change that to 
 something like:
 
   core: 5.6.0
 
 Which indicates at what perl version *some* version of this module went 
 into the core.
 
 So, a module like Dumpvalue.pm, which is core in 5.6 but not in 5.005, 
 could be installed into 'site' dirs for 5.005, and 'perl' for 5.6.

This makes sense.  MakeMaker can't [1] do it because it doesn't have that
information, but Module::Build can.

[1] It could be added but its not worth the effort.


Re: 'make dist' now adds META.yml

2003-03-07 Thread Ken Williams
On Friday, March 7, 2003, at 03:04  AM, [EMAIL PROTECTED] wrote:
Forgive my terseness, but this discussion has already been done in all
possible permutations.  Below are the conclusions reached.  If you 
wish to
continue discussing, I'd be happy to do it in private but I really, 
really
DO NOT WANT ANOTHER XML VS YAML DISCUSSION.  Not on this list anyway.
For those that want to see a previous incarnation of this discussion, 
see

 http://archive.develooper.com/[EMAIL PROTECTED]/msg00405.html

 -Ken



Re: 'make dist' now adds META.yml

2003-03-06 Thread Ken Williams
On Thursday, March 6, 2003, at 08:38  AM, [EMAIL PROTECTED] wrote:
The META.yml file is intented to be compatible with Module::Build's and
currently looks something like this:
#XXX This is a prototype!!!  It will change in the future!!! X#
name: ExtUtils-MakeMaker
version:  6.06_03
version_from: lib/ExtUtils/MakeMaker.pm
installdirs:  perl
requires:
File::Spec:0.8
File::Basename:0
DirHandle: 0
Pod::Man:  0
distribution_type: module
generated_by: ExtUtils::MakeMaker version 6.06_03
The only thing that sticks out at me is the installdirs key - is that 
really meta-data about the distribution?  It seems like it's a choice 
the user makes when installing.

Also, there's no license key here.  Is it possible to generate that 
from anything?

 -Ken



Re: 'make dist' now adds META.yml

2003-03-06 Thread schwern
On Thu, Mar 06, 2003 at 09:00:06AM -0600, Ken Williams wrote:
 The only thing that sticks out at me is the installdirs key - is that 
 really meta-data about the distribution?  It seems like it's a choice 
 the user makes when installing.

If installdirs: perl then its a core module.  Site means its not.
The user can change it from there if they like, but there is a default
installation choice made by the author.

Just tossed it in there because it was easy.


 Also, there's no license key here.  Is it possible to generate that 
 from anything?

MakeMaker doesn't have any license information. :(