1 |
On Fri, 17 Jul 2015 13:15:53 +0300 |
2 |
Andrew Savchenko <bircoph@g.o> wrote: |
3 |
|
4 |
> Hello, |
5 |
> |
6 |
> TL;DR Is there any tool to build dependency tree for all packages |
7 |
> needed to be stabilized (or keyworded) in order stabilize (keyword) |
8 |
> foo/bar? |
9 |
> |
10 |
> Sometimes in order to stabilize a single version bump a whole lot |
11 |
> of packages needs to be stabilized as dependencies. A good example |
12 |
> is [1]. What I really need here is to stabilize |
13 |
> dev-haskell/pandoc-siteproc (I don't even care about exact version, |
14 |
> since any version looks ok for app-doc/root-docs), but this |
15 |
> triggers a whole lot of haskell packages to be stabilized. There |
16 |
> are several issues here: |
17 |
> |
18 |
> 1. There are many solutions for this issue, since version |
19 |
> requirements usually allow some range of versions. Looks like this |
20 |
> is a classical graph path finding task. It would be great to have a |
21 |
> tool for best effort solution: e.g. for a tree with minimal number |
22 |
> of dependencies of with most recent packages possible (for those |
23 |
> which are in the tree for at least 30 days). |
24 |
> |
25 |
> 2. It is very tedious to build such dependency tree manually (this |
26 |
> is how it was done in [1]). To make it worse such work is |
27 |
> error-prone, because it is near to impossible to check that each |
28 |
> stabilization in the dependency tree will not trigger any blocker |
29 |
> in the whole portage tree. Actually at least one such error was made |
30 |
> [2]. The best that can be done by hand is to verify that the |
31 |
> stabilization dependency tree is self-consistent, but even this |
32 |
> check requires a lot of time and effort. |
33 |
> |
34 |
> All these problems should be solvable with an appropriate tool, but |
35 |
> I can't find such tool. Apparently it should inherit some of emerge |
36 |
> and repoman functionality for deptree building and checking |
37 |
> respectively. |
38 |
> |
39 |
> Any ideas? I suppose arch teams should have something similar for |
40 |
> their goals. |
41 |
> |
42 |
> P.S. Note for the record: I filed a lot of stabilization request |
43 |
> for dev-haskell/* packaged I do not maintain, because haskell team |
44 |
> had not responded in a reasonable amount of time for my stable |
45 |
> request [3]. I'm not blaming anyone here, just explaining why such |
46 |
> action was taken. |
47 |
|
48 |
> [1] https://bugs.gentoo.org/showdependencytree.cgi?id=529538&hide_resolved=0 |
49 |
> [2] https://bugs.gentoo.org/show_bug.cgi?id=552388 |
50 |
> [3] https://bugs.gentoo.org/show_bug.cgi?id=546260 |
51 |
|
52 |
As you have discovered haskell packages have deep dependency chains |
53 |
and are interdependent. We (the haskell team) don't have a good stabilization |
54 |
story at all. |
55 |
|
56 |
It's partly why you didn't get any response. |
57 |
|
58 |
Our plan used to be "stabilize new major GHC on all arches and fix |
59 |
what breaks afterwards". We've improved our ebuild generation |
60 |
since thus you get resolution-time conflicts instead of compile-time |
61 |
ones. |
62 |
|
63 |
To ease the STABLEREQ pain we need: |
64 |
- stabilize stuff more argressively (needs some tooling), that |
65 |
will solve dependency depth problem on every new stabilization |
66 |
- fix repoman to help us in at least detecting inconsistent states: |
67 |
https://bugs.gentoo.org/show_bug.cgi?id=555266 |
68 |
that way we will gain more confidence f stable tree not being |
69 |
completely broken |
70 |
|
71 |
-- |
72 |
|
73 |
Sergei |