1 |
On Tue, 1 Nov 2016 09:29:09 +0000 |
2 |
Sergei Trofimovich <slyfox@g.o> wrote: |
3 |
|
4 |
> > 4. What are the common tasks that you find unnecessarily complex / |
5 |
> > lengthy with the current version specifications? |
6 |
> |
7 |
> Problem 1: |
8 |
> |
9 |
> Sometimes upstream decides that one of their dependencies |
10 |
> is broken on a version range (package compiles but does |
11 |
> horrible things due to accidental semantic change in a dependency) |
12 |
> |
13 |
> Common example is aeson. Upstream dependency looks like: |
14 |
> || ( ( >=aeson-0.5 <aeson-0.10 ) |
15 |
> ( >=aeson-0.11 <aeson-1.2 ) ) |
16 |
|
17 |
So version ranges with exclusions. How many versions usually need to be |
18 |
excluded? Is this usually limited to a few versions? Are the versions |
19 |
very specific or would you need to restrict them e.g. 0.10*? |
20 |
|
21 |
> Problem 2: |
22 |
> |
23 |
> Haskell ABI it a SUM of: |
24 |
> - ABIs of its dependency libraries |
25 |
> - own exports |
26 |
> Library version is a part of that library ABI. |
27 |
> Thus library ABI is guaranteed to change every library release. |
28 |
> |
29 |
> It means that once end user merges a library version bump |
30 |
> user needs to rebuild all library's transitive reverse dependencies. |
31 |
> Sometimes library is deep in the dependency chain (5-10 levels deep). |
32 |
> |
33 |
> There is no way to express that style of dependency in portage: |
34 |
> https://bugs.gentoo.org/show_bug.cgi?id=449094 |
35 |
> and app-admin/haskell-updater is still a needed thing to restore |
36 |
> world sanity after a library upgrade. |
37 |
|
38 |
Just to be clear, I was asking purely about versions and not |
39 |
slots/subslots and other magic like that. However, while at it I should |
40 |
point out that the spec doesn't really cover pure-DEPEND :=, so there |
41 |
is no guarantee that Haskell := operators will work at all. |
42 |
|
43 |
-- |
44 |
Best regards, |
45 |
Michał Górny |
46 |
<http://dev.gentoo.org/~mgorny/> |