[tahoe-lafs-trac-stream] [tahoe-lafs] #1343: how does a packager find version requirements for indirect dependencies?

tahoe-lafs trac at tahoe-lafs.org
Thu Oct 10 19:53:55 UTC 2013


#1343: how does a packager find version requirements for indirect dependencies?
----------------------------+-----------------------
     Reporter:  davidsarah  |      Owner:  somebody
         Type:  defect      |     Status:  new
     Priority:  major       |  Milestone:  undecided
    Component:  packaging   |    Version:  1.8.1
   Resolution:              |   Keywords:  docs
Launchpad Bug:              |
----------------------------+-----------------------

Old description:

> The method of finding Tahoe's indirect requirements documented at [http
> ://tahoe-lafs.org/trac/tahoe-lafs/wiki/AdvancedInstall#Dependencies],
> * requires a built copy of Tahoe, and
> * only prints the versions being used by that copy, not the requirements.
>
> The indirect dependencies are pyutil, zbase32, and argparse. It might be
> easier just to document that (with minimum version requirements if any)
> and update the documentation manually.

New description:

 The method of finding Tahoe's indirect requirements documented at [http
 ://tahoe-lafs.org/trac/tahoe-lafs/wiki/AdvancedInstall#Dependencies],
 * requires a built copy of Tahoe, and
 * only prints the versions being used by that copy, not the requirements.

 The indirect dependencies are pyutil, zbase32, and argparse. It might be
 easier just to document that (with minimum version requirements if any)
 and update the documentation manually.

--

Comment (by dstufft):

 This is actually a pretty hard problem to solve. The issue is that
 indirect dependencies are not a concrete thing and can depend on what
 version of direct dependencies get installed (or are already installed).

 For instance:

 {{{
 tahoe-lafs depends on foo, foo 1.0 depends on bar, foo 2.0 depends on wat
 }}}

 In the above example there isn't a single set of requirements, it's a tree
 where the final set depends on what version of foo ends up being selected
 for installation. It *can* be expressed of course but it can be a very
 confusing representation if the version specifiers of anything but the
 root of the tree varies. If they are static then you can collapse the
 branches into a single branch and you may (in a simple case) get a single
 set because every combination of dependencies ends up having the same
 requirement specifiers.

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1343#comment:1>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list