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
signature.asc
Description: PGP signature