Re: Module::Install is a time bomb

2008-10-01 Thread Jos I. Boumans


On Oct 1, 2008, at 5:11 AM, Andreas J. Koenig wrote:

On Wed, 1 Oct 2008 01:04:02 +0300, Gabor Szabo  
[EMAIL PROTECTED] said:



BTW Could I somehow install all the dependencies of a module but not
the module itself?


You mean like you File::HomeDir requires newest MakeMaker and maybe
more but you don't know exactly and just want to look around the
uninstalled dependencies?

That would be a combination of Ctest Module and Cis_tested.

The final step of installing would then be done manually.


CPANPLUS commands can be used for that too of course, and there's even
a plugin for the shell to do just that:

  http://search.cpan.org/~mgrimes/CPANPLUS-Shell-Default-Plugins- 
Prereqs-0.07/lib/CPANPLUS/Shell/Default/Plugins/Prereqs.pm


Cheers,

--

Jos Boumans

If superman is so smart, why does he wear underpants over his 
trousers?

CPANPLUShttp://cpanplus.sf.net




Re: Module::Build 0.30 is released - ppm.t on VMS depends on Archive::Tar patch.

2008-10-01 Thread John E. Malmberg

Steve Hay wrote:

Ken Williams wrote:

Hi all,

After much tireless work by Eric Wilhelm and lots of feedback from
patient  nonpatient users alike, I'm pleased to announce that version
0.30 of Module::Build is now on CPAN.  This is the first non-beta
release in a long time.


Thanks, applied to bleadperl as 34446.

Two local changes remain:

Change 32357 by [EMAIL PROTECTED] on 2007/11/17 04:19:47

Skip Module::Build ppm test -- not ready for prime time on VMS.


http://www.nntp.perl.org/group/perl.vmsperl/2008/06/msg14821.html

The main problem is that Archive::Tar needs a patch to properly be able 
to pack a VMS binary into a tarball.


We were waiting for word from Jos on this.

-John
Personal Opinion Only


Re: The problem with auto-installing dependencies

2008-10-01 Thread Ricardo SIGNES
* Bill Ward [EMAIL PROTECTED] [2008-09-30T23:07:22]
 I wasn't talking specifically about anything... the recent discussion about
 the above led me to post, but I was talking in general about the tendency of
 module authors to be, in my opinion, overly eager to have dependencies on
 other modules.

Authors are eager to

  (a) write less code to solve the problem at hand
  (b) use code that's already tested and

I don't think anybody actually rushes out to add dependencies.  They rush out
to solve problems reliably, and they do that through code re-use.  Heck, that's
why you're going to the CPAN, too, isn't it?

I have never added a dependency to my code when the person paying me for it
asked me not to.  I bet more CPAN authors are the same way.

-- 
rjbs


Re: The problem with auto-installing dependencies

2008-10-01 Thread Aristotle Pagaltzis
* Ricardo SIGNES [EMAIL PROTECTED] [2008-10-01 13:45]:
 I bet more CPAN authors are the same way.

Yeah. I often vacillate a great deal about adding dependencies:

• I hate making things harder to install. I’m also loathe to give
  up control if I can’t trust that the delegated responsibility
  is in formidably capable hands.

• Avoiding dependencies forces me to write more code that I’ll
  have to haul around forever after, often in areas outside my
  main interest where I don’t have the patience to do a thorough
  job. I hate that even more.

So there are several competing forces at play: how big is the job
I need done? Is it going to affect the API I expose? How good is
the module I am considering? How big? How many dependencies does
it in turn have? How much do I trust the author? And no particular
set of answers to these questions is the “right” one.

In some cases I add a dependency without any hesitation at all.
In other cases I do not even consider dependencies. Usually it
takes me a while to decide. It always depends a great deal.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: The problem with auto-installing dependencies

2008-10-01 Thread Dave Rolsky

On Wed, 1 Oct 2008, Aristotle Pagaltzis wrote:


* Ricardo SIGNES [EMAIL PROTECTED] [2008-10-01 13:45]:

I bet more CPAN authors are the same way.


Yeah. I often vacillate a great deal about adding dependencies:

• I hate making things harder to install. I’m also loathe to give
 up control if I can’t trust that the delegated responsibility
 is in formidably capable hands.


I really don't think _module_ authors should be worrying about this. Just 
write your code and depend on whatever makes solving the particular 
problem you're solving easier.


Installation and dependency chains are an issue best solved in the context 
of _applications_. There are a number of ways to go about this, including 
system-native packages (where they exist), Shipwright, hand-rolled 
package all the tarballs and install em, installing a separate perl or 
separate lib dir per app, etc.


Different apps will find different solutions that work for them, and this 
is largely dependent on the app. For example, if the app can reasonably 
demand it's own server, system packages work great. If it can't, maybe 
it's better off automating installing into a per-app lib dir.


And of course, an app can simply choose to forgo dependencies altogether.


-dave

/*==
VegGuide.Org
Your guide to all that's veg
==*/

Re: Module::Install is a time bomb

2008-10-01 Thread Ken Williams
On Tue, Sep 30, 2008 at 2:43 AM, Adam Kennedy
[EMAIL PROTECTED] wrote:

 Really, inc::Module::Build needs to not only be able to know that the
 installed one is newer than it, but that if that is the case it should
 use an entry point to loading Module::Build specifically for that it.

I'll say it again though: there is no such thing as
inc::Module::Build.  We're not just putting M::B in an inc/ directory
and loading it.

The semantics we're working on for people to use are:

 use lib 'inc'; # Where latest.pm lives
 use latest 'Module::Build';  # Knows to look in inc/bundled/

The general-purpose logic for doing version comparisons lives in latest.pm .

 -Ken


Re: Module::Install is a time bomb

2008-10-01 Thread Smylers
Ken Williams writes:

 I'll say it again though: there is no such thing as
 inc::Module::Build.  We're not just putting M::B in an inc/ directory
 and loading it.
 
 The semantics we're working on for people to use are:
 
  use lib 'inc'; # Where latest.pm lives
  use latest 'Module::Build';  # Knows to look in inc/bundled/
 
 The general-purpose logic for doing version comparisons lives in latest.pm .

But what if the bundled version of latest.pm is buggy and I already have
a later latest.pm installed on my system?  That will use the wrong one!!

Smylers


Re: The problem with auto-installing dependencies

2008-10-01 Thread David Cantrell
On Wed, Oct 01, 2008 at 04:56:32PM +0200, Aristotle Pagaltzis wrote:

 So there are several competing forces at play: how big is the job
 I need done? Is it going to affect the API I expose? How good is
 the module I am considering? How big? How many dependencies does
 it in turn have? How much do I trust the author? And no particular
 set of answers to these questions is the ???right??? one.

Part of this is why I wrote CPANdeps (http://deps.cpantesters.org/).
I'm just about to add links to RT queues, which should be useful too.

-- 
David Cantrell | Godless Liberal Elitist

I caught myself pulling grey hairs out of my beard.
I'm definitely not going grey, but I am going vain.


Re: Module::Install is a time bomb

2008-10-01 Thread Ken Williams
On Wed, Oct 1, 2008 at 11:12 AM, Smylers [EMAIL PROTECTED] wrote:

 But what if the bundled version of latest.pm is buggy and I already have
 a later latest.pm installed on my system?  That will use the wrong one!!

latest.pm doesn't ever get installed on anyone's computer.  If you
install it, we have a backup plan for that too - the guys in black
coats will come and take your computer away.

 -Ken


Re: Module::Install is a time bomb

2008-10-01 Thread Ricardo SIGNES
* Ken Williams [EMAIL PROTECTED] [2008-10-01T12:15:04]
 On Wed, Oct 1, 2008 at 11:12 AM, Smylers [EMAIL PROTECTED] wrote:
  But what if the bundled version of latest.pm is buggy and I already have
  a later latest.pm installed on my system?  That will use the wrong one!!
 
 latest.pm doesn't ever get installed on anyone's computer.  If you
 install it, we have a backup plan for that too - the guys in black
 coats will come and take your computer away.

Well, at this point we're back to everybody must upgrade everything.
Presumably latest.pm knows to use the installed latest.pm if it's later, even
if this is rarely true and even more rarely needed.

-- 
rjbs


Re: latest.pm usage

2008-10-01 Thread Eric Wilhelm
# from Ken Williams
# on Wednesday 01 October 2008:

The semantics we're working on for people to use are:

 use lib 'inc'; # Where latest.pm lives
 use latest 'Module::Build';  # Knows to look in inc/bundled/

Um, isn't that 'inc/inc_*', or did I miss a memo?

--Eric
-- 
Moving pianos is dangerous.
Moving pianos are dangerous.
Buffalo buffalo buffalo buffalo buffalo buffalo buffalo.
---
http://scratchcomputing.com
---


Re: Module::Install is a time bomb

2008-10-01 Thread Ken Williams
On Wed, Oct 1, 2008 at 12:02 PM, Ricardo SIGNES
[EMAIL PROTECTED] wrote:
 * Ken Williams [EMAIL PROTECTED] [2008-10-01T12:15:04]
 On Wed, Oct 1, 2008 at 11:12 AM, Smylers [EMAIL PROTECTED] wrote:
  But what if the bundled version of latest.pm is buggy and I already have
  a later latest.pm installed on my system?  That will use the wrong one!!

 latest.pm doesn't ever get installed on anyone's computer.  If you
 install it, we have a backup plan for that too - the guys in black
 coats will come and take your computer away.

 Well, at this point we're back to everybody must upgrade everything.
 Presumably latest.pm knows to use the installed latest.pm if it's later, even
 if this is rarely true and even more rarely needed.

Ricardo: there's no such thing as installed latest.pm.  Please go
back and read what I wrote above.

 -Ken


Re: Module::Install is a time bomb

2008-10-01 Thread David Golden
On Wed, Oct 1, 2008 at 9:34 PM, Ken Williams [EMAIL PROTECTED] wrote:
 Ricardo: there's no such thing as installed latest.pm.  Please go
 back and read what I wrote above.

If I understand correctly, latest.pm isn't a module on CPAN, thus is
never installed only bundled.

I.e. It's not only::latest (http://search.cpan.org/dist/only-latest)

Correct?

-- David


Re: Module::Install is a time bomb

2008-10-01 Thread Ken Williams
On Wed, Oct 1, 2008 at 8:38 PM, David Golden [EMAIL PROTECTED] wrote:
 If I understand correctly, latest.pm isn't a module on CPAN, thus is
 never installed only bundled.

 I.e. It's not only::latest (http://search.cpan.org/dist/only-latest)

 Correct?

Correct.  It's only executed as part of the build system, not ever
installed.  In this respect it's just like any code that's in the
Build.PL or t/*.t.

 -Ken


Re: latest.pm usage

2008-10-01 Thread Ken Williams
On Wed, Oct 1, 2008 at 12:34 PM, Eric Wilhelm
[EMAIL PROTECTED] wrote:
 # from Ken Williams
 use latest 'Module::Build';  # Knows to look in inc/bundled/

 Um, isn't that 'inc/inc_*', or did I miss a memo?

Yeah, latest.pm is currently looking in any inc/inc_* for bundled
stuff, but that strikes me as kind of dumb actually.  I don't know why
I used _ as a namespace separator when the filesystem already has a
perfectly good / (and the like).

 -Ken


Re: Module::Install is a time bomb

2008-10-01 Thread Ricardo SIGNES
* Ken Williams [EMAIL PROTECTED] [2008-10-01T21:34:28]
 On Wed, Oct 1, 2008 at 12:02 PM, Ricardo SIGNES
  latest.pm doesn't ever get installed on anyone's computer.  If you
  install it, we have a backup plan for that too - the guys in black
  coats will come and take your computer away.
 
  Well, at this point we're back to everybody must upgrade everything.
  Presumably latest.pm knows to use the installed latest.pm if it's later,
  even if this is rarely true and even more rarely needed.
 
 Ricardo: there's no such thing as installed latest.pm.  Please go
 back and read what I wrote above.

I read and understood what you said.

Perhaps I should've said, presumably it would be better if...

This thread started with Module::Install is a time bomb because, in large
part, it bundles code that will not use later code found on the installing
system.  Then when there is a bug, every author must re-release a dist.  That
means that a fix to Module::Install means that there must be a thousand more
upgrades, one for each dist using it.

Module::Build is going to fix that by correctly using the latest Module::Build
-- either the one in ./inc or the one in @INC.  It will accomplish that by
using code that is only found in the dist.  That means that when there is a
bug, every author must re-release a dist.  That means that a fix to latest.pm
means that there must be a thousand more upgrades, one for each dist using it.

I will admit that bugs in latest.pm (which I have not seen, but can imagine)
are less likely than bugs in Module::Install (which I have seen, and wish I
could not imagine).  It still seems sort of bizarre to have absolutely no
nuclear option by which one can deal with 1,234 deployed and broken latest.pms.

-- 
rjbs


Re: The problem with auto-installing dependencies

2008-10-01 Thread Aristotle Pagaltzis
* Dave Rolsky [EMAIL PROTECTED] [2008-10-01 17:05]:
 Installation and dependency chains are an issue best solved in
 the context of _applications_.

That just moves the problem, though: an that uses modules with
lots of dependencies will demand more build engineering effort.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: Module::Install is a time bomb

2008-10-01 Thread Aristotle Pagaltzis
* Ken Williams [EMAIL PROTECTED] [2008-10-02 04:10]:
 It's only executed as part of the build system, not ever
 installed. In this respect it's just like any code that's in
 the Build.PL or t/*.t.

But those are written and maintained by the author. Wouldn’t it
make more sense to make latest.pm part of Module::Build proper?

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: The problem with auto-installing dependencies

2008-10-01 Thread Dave Rolsky

On Thu, 2 Oct 2008, Aristotle Pagaltzis wrote:


* Dave Rolsky [EMAIL PROTECTED] [2008-10-01 17:05]:

Installation and dependency chains are an issue best solved in
the context of _applications_.


That just moves the problem, though: an that uses modules with
lots of dependencies will demand more build engineering effort.


Yes, my point is that it moves the problem to the people who are in the 
best position to deal with it.


The whole dependency problem isn't a problem for module _authors_ like 
us. If we want to depend on stuff, we install it from CPAN, develop the 
new module, and release.


It's a problem if you have an application that needs to be installed in a 
system with some sort of constraint. That constraint could be that the app 
plays well with other apps, that modules can't be upgraded, that all code 
on the system needs review by someone, etc.


The application is also the place where you can come up with multiple 
solutions, like system packages, install in /opt, custom lib dir, PAR, 
etc.



-dave

/*==
VegGuide.Org
Your guide to all that's veg
==*/


Re: latest.pm

2008-10-01 Thread Eric Wilhelm
# from Ricardo SIGNES
# on Wednesday 01 October 2008:

I will admit that bugs in latest.pm (which I have not seen, but can
 imagine) are less likely than bugs in Module::Install (which I have
 seen, and wish I could not imagine).

Please see the run-down of usage, and link to sample distribution:

  http://www.nntp.perl.org/group/perl.module.build/2008/09/msg1665.html

 It still seems sort of bizarre
 to have absolutely no nuclear option by which one can deal with 1,234
 deployed and broken latest.pms.

Please see the -M switch and some code like:

  unshift(@INC, \fix_the_problem);

The fact that latest.pm is very small makes it rather unlikely to be 
needed and potentially an easy fix if it is needed.  One could probably 
apply that argument to Module::Install too, except for the small bit.

--Eric
-- 
Peer's Law: The solution to the problem changes the problem.
---
http://scratchcomputing.com
---