On Fri, 17 Jul 2015 13:15:53 +0300
Andrew Savchenko <birc...@gentoo.org> wrote:

> Hello,
> 
> TL;DR Is there any tool to build dependency tree for all packages
> needed to be stabilized (or keyworded) in order stabilize (keyword)
> foo/bar?
> 
> Sometimes in order to stabilize a single version bump a whole lot
> of packages needs to be stabilized as dependencies. A good example
> is [1]. What I really need here is to stabilize
> dev-haskell/pandoc-siteproc (I don't even care about exact version,
> since any version looks ok for app-doc/root-docs), but this
> triggers a whole lot of haskell packages to be stabilized. There
> are several issues here:
> 
> 1. There are many solutions for this issue, since version
> requirements usually allow some range of versions. Looks like this
> is a classical graph path finding task. It would be great to have a
> tool for best effort solution: e.g. for a tree with minimal number
> of dependencies of with most recent packages possible (for those
> which are in the tree for at least 30 days).
> 
> 2. It is very tedious to build such dependency tree manually (this
> is how it was done in [1]). To make it worse such work is
> error-prone, because it is near to impossible to check that each
> stabilization in the dependency tree will not trigger any blocker
> in the whole portage tree. Actually at least one such error was made
> [2]. The best that can be done by hand is to verify that the
> stabilization dependency tree is self-consistent, but even this
> check requires a lot of time and effort.
> 
> All these problems should be solvable with an appropriate tool, but
> I can't find such tool. Apparently it should inherit some of emerge
> and repoman functionality for deptree building and checking
> respectively.
> 
> Any ideas? I suppose arch teams should have something similar for
> their goals.
> 
> P.S. Note for the record: I filed a lot of stabilization request
> for dev-haskell/* packaged I do not maintain, because haskell team
> had not responded in a reasonable amount of time for my stable
> request [3]. I'm not blaming anyone here, just explaining why such
> action was taken.

> [1] https://bugs.gentoo.org/showdependencytree.cgi?id=529538&hide_resolved=0
> [2] https://bugs.gentoo.org/show_bug.cgi?id=552388
> [3] https://bugs.gentoo.org/show_bug.cgi?id=546260

As you have discovered haskell packages have deep dependency chains
and are interdependent. We (the haskell team) don't have a good stabilization
story at all.

It's partly why you didn't get any response.

Our plan used to be "stabilize new major GHC on all arches and fix
what breaks afterwards". We've improved our ebuild generation
since thus you get resolution-time conflicts instead of compile-time
ones.

To ease the STABLEREQ pain we need:
- stabilize stuff more argressively (needs some tooling), that
  will solve dependency depth problem on every new stabilization
- fix repoman to help us in at least detecting inconsistent states:
    https://bugs.gentoo.org/show_bug.cgi?id=555266
  that way we will gain more confidence f stable tree not being
  completely broken

-- 

  Sergei

Attachment: signature.asc
Description: PGP signature

Reply via email to