1 |
On 2009/05/17, Ciaran McCreesh <ciaran.mccreesh@××××××××××.com> wrote: |
2 |
|
3 |
> > Let's take a very simple |
4 |
> > example: |
5 |
> > - eapi X says "_p is equal to _p0" |
6 |
> > - eapi Y says "_p is greater than any _pN" |
7 |
> > --> of "foo-1_p1 with EAPI=X" and "foo-1_p with EAPI=Y", what is |
8 |
> > the "best" version? |
9 |
> |
10 |
> You don't define it quite like that. You define it by mapping EAPI X |
11 |
> _p onto super-EAPI _p0, and EAPI Y _p onto super_EAPI _pINFINITY. |
12 |
> That way the ordering's well defined. |
13 |
|
14 |
I understand the idea, but I still don't think it's viable to allow |
15 |
such definitions, because there are too many contexts in which we |
16 |
manipulate pure version strings, without decorating them with an EAPI, |
17 |
and without reference to a concrete package from which we could get it. |
18 |
Take ">=bar/foo-1_p" as an "emerge" command line argument for |
19 |
instance, is my foo-1_p1.ebuild a candidate? |
20 |
|
21 |
> Although that's a fairly convoluted example, and not in line with |
22 |
> what's being proposed for future EAPIs. What we're after is the |
23 |
> ability to allow versions like 1.2.3-rc1. |
24 |
|
25 |
Right, and for this kind of reasonable future needs, it's easy enough |
26 |
to ensure enough backward compatibility so that we don't need to add |
27 |
the EAPI each time we talk about a version. |
28 |
|
29 |
> > As a consequence, the algorithm for picking best version of a |
30 |
> > package can be as simple as the following: |
31 |
> > 1- among all ebuilds filenames, filter out the ones with |
32 |
> > unrecognized version string |
33 |
> |
34 |
> You don't know whether you recognise the version string until you know |
35 |
> the EAPI, though. |
36 |
|
37 |
Under my previously stated restrictions, you know: |
38 |
- which one can be rejected for sure (the ones not recognized by any |
39 |
of your implemented EAPI). |
40 |
- how to correctly order the remaining ones (even the incorrect ones |
41 |
which may remain and would be rejected only at step 4), and thus |
42 |
where to start to find the "best" correct one. |
43 |
Which is well enough. |
44 |
|
45 |
-- |
46 |
TGL. |