FAQ
12. Allow Sequences (Arrays) for Prereqs

Proposal:

Right now, to the best of my knowledge, the only benefit of a the magic
"Bundle::" namespace is that its prerequisites can be declared in optimal
installation order. If META allowed prereqs to be communicated in a set
order by using a sequence of pairs, Bundle's magic could probably be made
obsolete, simplifying the toolchain overall (over a long deprecation
period).

Comments:

* I quite like the idea of (perhaps optional) ordering of dependencies, but
I worry a little that we might come to depend on the installation order,
when we really should not. Adam K

Search Discussions

  • Ricardo Signes at Oct 9, 2009 at 12:21 pm
    * David Golden [2009-10-09T07:47:57]
    12. Allow Sequences (Arrays) for Prereqs
    Strongly agreed. (I believe I proposed this.)

    --
    rjbs
  • Hans Dieter Pearcey at Oct 9, 2009 at 12:31 pm

    Excerpts from David Golden's message of Fri Oct 09 07:47:57 -0400 2009:
    12. Allow Sequences (Arrays) for Prereqs

    Proposal:

    Right now, to the best of my knowledge, the only benefit of a the magic
    "Bundle::" namespace is that its prerequisites can be declared in optimal
    installation order. If META allowed prereqs to be communicated in a set
    order by using a sequence of pairs, Bundle's magic could probably be made
    obsolete, simplifying the toolchain overall (over a long deprecation
    period).

    Comments:

    * I quite like the idea of (perhaps optional) ordering of dependencies, but
    I worry a little that we might come to depend on the installation order,
    when we really should not. Adam K
    What goal does this proposal have *other* than making it possible to depend on
    installation order?

    hdp.
  • Graham Barr at Oct 9, 2009 at 1:52 pm

    On Oct 9, 2009, at 6:47 AM, David Golden wrote:

    12. Allow Sequences (Arrays) for Prereqs

    Proposal:

    Right now, to the best of my knowledge, the only benefit of a the
    magic
    "Bundle::" namespace is that its prerequisites can be declared in
    optimal
    installation order. If META allowed prereqs to be communicated in a
    set
    order by using a sequence of pairs, Bundle's magic could probably be
    made
    obsolete, simplifying the toolchain overall (over a long deprecation
    period).
    I guess there could be some benefit to sometimes expect an
    installation order.

    it is more just an implementation issue in the toolchain.

    +1

    Graham.
  • Steffen Mueller at Oct 9, 2009 at 2:18 pm

    David Golden wrote:
    12. Allow Sequences (Arrays) for Prereqs
    In principle, this should be handled by dependency resolution.
    Effectively, being able to nudge things in the right direction seems
    useful. Realistically, some people don't get their dependencies right.
    Is it good to be able to hide that or is that a misfeature down the road?

    Steffen
  • Barbie at Oct 31, 2009 at 5:06 pm

    On Fri, Oct 09, 2009 at 04:18:35PM +0200, Steffen Mueller wrote:
    David Golden wrote:
    12. Allow Sequences (Arrays) for Prereqs
    In principle, this should be handled by dependency resolution.
    Agreed. But current processes don't really do this with enough depth
    currently.
    Effectively, being able to nudge things in the right direction seems
    useful. Realistically, some people don't get their dependencies right.
    Is it good to be able to hide that or is that a misfeature down the road?
    I think it will help some of the CPAN Tester issues that crop up from
    time to time.

    Cheers,
    Barbie.
    --
    Birmingham Perl Mongers <http://birmingham.pm.org>
    Memoirs Of A Roadie <http://barbie.missbarbell.co.uk>
    CPAN Testers Blog <http://blog.cpantesters.org>
    YAPC Conference Surveys <http://yapc-surveys.org>
  • David Golden at Oct 9, 2009 at 4:01 pm

    On Fri, Oct 9, 2009 at 7:47 AM, David Golden wrote:
    12. Allow Sequences (Arrays) for Prereqs

    Proposal:

    Right now, to the best of my knowledge, the only benefit of a the magic
    "Bundle::" namespace is that its prerequisites can be declared in optimal
    installation order.  If META allowed prereqs to be communicated in a set
    order by using a sequence of pairs, Bundle's magic could probably be made
    obsolete, simplifying the toolchain overall (over a long deprecation
    period).
    I see no downside to having prereqs specified as an array rather than
    hash, but I'm not sure if I want want to say that clients *must*
    install in that order or *may* use that order to guide dependency
    resolution.

    One issue may be that it won't be clear where in the array to put
    dynamic (OS-specific) dependencies.

    I'd say maybe for 2.0 we change to an array, and then we take a bit
    longer to figure out how to use the sequence in practice.

    So, I'm narrowly supportive, but see a lot of thorny issues to figure out.

    David
  • Ruslan Zakirov at Oct 9, 2009 at 7:28 pm

    On Fri, Oct 9, 2009 at 3:47 PM, David Golden wrote:
    12. Allow Sequences (Arrays) for Prereqs [snip]
    order by using a sequence of pairs, Bundle's magic could probably be
    made obsolete, simplifying the toolchain overall (over a long deprecation
    period).
    [snip]

    Always, thought that Bundles are about optional deps. Like "hey, here
    is Bundle for this module that installs all cool features you don't
    get by default becuase of optional dependencies".

    I don't see how listing deps in sequence may help solve anything. I do
    believe that it may break thing when misused.

    --
    Best regards, Ruslan.
  • Ricardo Signes at Oct 9, 2009 at 7:31 pm
    * Ruslan Zakirov [2009-10-09T15:28:29]
    On Fri, Oct 9, 2009 at 3:47 PM, David Golden wrote:
    12. Allow Sequences (Arrays) for Prereqs [snip]
    order by using a sequence of pairs, Bundle's magic could probably be
    made obsolete, simplifying the toolchain overall (over a long deprecation
    period).
    [snip]

    Always, thought that Bundles are about optional deps. Like "hey, here
    is Bundle for this module that installs all cool features you don't
    get by default becuase of optional dependencies".
    When I have said, in the past, "I wish Bundles were replaced entirely by
    Tasks," the response I got a number of times was, "but Bundles let you fix the
    install order."

    It this is not an issue, and we would rather always allow the installing client
    to determine order, I am less interested in this.

    --
    rjbs
  • David Golden at Oct 9, 2009 at 7:54 pm

    On Fri, Oct 9, 2009 at 3:31 PM, Ricardo Signes wrote:
    * Ruslan Zakirov [2009-10-09T15:28:29]
    On Fri, Oct 9, 2009 at 3:47 PM, David Golden wrote:
    12. Allow Sequences (Arrays) for Prereqs [snip]
    order by using a sequence of pairs, Bundle's magic could probably be
    made obsolete, simplifying the toolchain overall (over a long deprecation
    period).
    [snip]

    Always, thought that Bundles are about optional deps. Like "hey, here
    is Bundle for this module that installs all cool features you don't
    get by default becuase of optional dependencies".
    When I have said, in the past, "I wish Bundles were replaced entirely by
    Tasks," the response I got a number of times was, "but Bundles let you fix the
    install order."
    They do, and occasionally it has been useful. The other major feature
    of Bundles it that you can specify *distributions* not just *modules*.
    I.e. RJBS/Foo-Bar-1.23.tar.gz -- allowing older or even development
    versions.
    It this is not an issue, and we would rather always allow the installing client
    to determine order, I am less interested in this.
    I'm leaning towards using an array and having the client attempt an
    order-preserving dependency resolution (*should* preserve). So for
    [A, B, C], A's deps are resolved then A is installed, then B's deps
    are installed then B is, then C's deps and C. If B depends on A and C
    depends on A and B, then it's just A => B => C.

    If a naive META generator just alpha sorts or uses whatever order
    results from "each %prereq", the client will still install them
    correctly, but a smart/custom META could pre-resolve the dependency
    order if needed.

    -- David
  • Zefram at Oct 10, 2009 at 10:31 pm

    David Golden wrote:
    Right now, to the best of my knowledge, the only benefit of a the magic
    "Bundle::" namespace is that its prerequisites can be declared in optimal
    installation order.
    This is a very dubious feature. If it is desirable at all, the
    mutually-dependent module is the wrong place for this information.

    -zefram

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcpan-workers @
categoriesperl
postedOct 9, '09 at 11:48a
activeOct 31, '09 at 5:06p
posts11
users8
websitecpan.org

People

Translate

site design / logo © 2021 Grokbase