1 |
Hi, |
2 |
|
3 |
On 9/02/2013 23:15, Alexis Ballier wrote: |
4 |
> Dear fellow developers, |
5 |
> |
6 |
> I hope this will be trivial to most of you but after seeing bug #455900 |
7 |
> and the vast majority of developers not even thinking twice before |
8 |
> sedding their dep strings, I believe this needs some attention. |
9 |
|
10 |
What is wrong with maintainers just updating their dependencies in this |
11 |
fashion? Surely the onus in this case is on package maintainers setting |
12 |
sensible subslots (which is indeed what you appear to be saying below)? |
13 |
|
14 |
I even noticed some maintainers adding subslots dependencies on |
15 |
libraries that do not yet define subslots. This too seems reasonable, |
16 |
given that there would be no impact until the library defines a |
17 |
(sensible) subslot in the future. |
18 |
|
19 |
> |
20 |
> What do subslots do: You set a subslot to a package and every time said |
21 |
> package subslot changes (e.g. with an update), others packages |
22 |
> depending on it with a := dep will be rebuilt. Nothing more, nothing |
23 |
> less. |
24 |
> |
25 |
> Now, this solves a real problem: haskell, perl and ocaml packages need |
26 |
> to be rebuilt after updating their respective compiler/interpreter and, |
27 |
> in some cases, even after updating the libraries they use. Subslots |
28 |
> would make haskell-updater, perl-cleaner and ocaml-rebuild not needed |
29 |
> in the future. |
30 |
> |
31 |
> You can also use subslots to notify an ABI change in a shared library, |
32 |
> in order to avoid having to use preserve-libs or run revdep-rebuild. |
33 |
> However, this week I had to rebuild webkit-gtk three or four times and |
34 |
> libreoffice twice... |
35 |
> If you want to notify ABI changes, then you should set subslot to |
36 |
> something representing the ABI, $PV as subslot is most certainly wrong |
37 |
> in that case. Subslot is *not* a substitute to checking your library |
38 |
> ABI, checking if its reverse dependencies work fine after the update, |
39 |
> and notifying upstream if something went wrong so they can make a quick |
40 |
> release fixing their mistake. Subslot is also *not* a substitute to |
41 |
> soname and ensuring ABI compatibility (at least forward) between |
42 |
> libraries with the same major. Using subslot only to be on the safe |
43 |
> side and forcing a rebuild of all the dependent packages because it is |
44 |
> too much work to check the ABI and work with upstream is, IMHO, a |
45 |
> serious QA issue. |
46 |
> |
47 |
> Thank you for your attention, |
48 |
> |
49 |
> Alexis. |
50 |
> |
51 |
> |
52 |
|
53 |
Best regards, |
54 |
Michael |