Gentoo Archives: gentoo-dev

From: Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>
To: gentoo-dev@l.g.o
Subject: Re: versionator.eclass terminator, was [gentoo-dev] Re: GLEP 55 updated
Date: Mon, 18 May 2009 15:33:53
Message-Id: 20090518163344.5b5aa8ee@snowcone
In Reply to: Re: versionator.eclass terminator, was [gentoo-dev] Re: GLEP 55 updated by Jeroen Roovers
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

Attachments

File name MIME type
signature.asc application/pgp-signature