1 |
On Mon, 18 May 2009 17:28:00 +0200 |
2 |
Jeroen Roovers <jer@g.o> wrote: |
3 |
> On Mon, 18 May 2009 16:16:46 +0100 |
4 |
> Ciaran McCreesh <ciaran.mccreesh@××××××××××.com> wrote: |
5 |
> > Why do you think I wrote the awful hack that is versionator? |
6 |
> |
7 |
> Why don't you explain why, historically, you put that in the tree? It |
8 |
> would help us now if you were to simply record your mistakes for |
9 |
> everybody else to easily avoid. It's still being used in the tree and |
10 |
> should be discouraged. |
11 |
|
12 |
Versionator was created because the alternative was worse: developers |
13 |
were hard-coding versions in ebuilds, writing dodgy bash substitutions |
14 |
that wouldn't reliably convert between versions and using things like |
15 |
sed and tr in global scope. |
16 |
|
17 |
The problem is, versionator was written before the current version |
18 |
rules. It doesn't handle some things that are now legal, and it still |
19 |
uses the old meanings for numeric components. |
20 |
|
21 |
The correct solution is two-fold: |
22 |
|
23 |
* Replace versionator with package-manager internal functions that use |
24 |
the package manager's rules for version parsing. |
25 |
|
26 |
* Reduce the need to use MY_PV by extending the version rules. |
27 |
|
28 |
Both of these are things that can't be done with current EAPI rules. |
29 |
|
30 |
> > Anything that finally lets us kill that off has to be good... |
31 |
> |
32 |
> Loosening VERSION requirements won't fix the problem. This will: |
33 |
> |
34 |
> 1) Discourage its use by putting a QA ewarn in the eclass. |
35 |
> 2) Have all ebuilds converted either through QA bugs or a nice |
36 |
> Saturday afternoon coding spree. |
37 |
> 3) Announce its removal. |
38 |
> 4) Remove. |
39 |
|
40 |
You can't discourage versionator until the replacement's in place. |
41 |
Going back to the old way of doing things is a loooooot worse than |
42 |
using versionator. So no, the way to fix it is: |
43 |
|
44 |
1) Change the EAPI rules to allow global scope and version suffix |
45 |
changes. |
46 |
|
47 |
2) Bring in a versionator replacement done as internals in a new EAPI. |
48 |
|
49 |
3) Extend the version format rules in a new EAPI. |
50 |
|
51 |
4) Disallow versionator use in the first EAPI that has 2) and 3). |
52 |
|
53 |
-- |
54 |
Ciaran McCreesh |