Thomas Pani wrote:
> My concern is technical: Filenames are for identifying files uniquely.
> An ebuild is uniquely identified by <cat>/<pn>-<pv>, so that's what it's
> filename should be. Adding anything else to the filename will only
> clutter the tree and lead to additional inconsitencies. Yes, you can
> check for these using QA tools. But if it's not in the filename you
> don't have to check.
> If you say that package managers need the EAPI info so early that they
> can't even read the first non-comment line of an ebuild that's fine. Go
> and place it in the filename. But nobody had a *technical* argument why
> that's the only possible solution so far. All I got was "you don't
> understand all that fancy PM stuff".
Good point. First of all, and this is an architecture/design issue, the only
valid reason to put the EAPI in the filename is that is *belongs* there in
principal. File extensions are for file types, not for info that really
should be in the file. If the motivation for placing the info in the filename
(and worse, the *extension*) is that of performance, you should think twice
about putting it there. If this is to address a technical problem, it should
be solved in a technical way. The format of a filename should be determined
by policy, not technical implementation or convenience.
Technical reasons to avoid the filename are:
1) Increase of [needless] complexity in filenames/extensions (and only one
example of the impact is that searching for ebuild files becomes less
2) Having the same info in more than one place is bad (requiring extra repoman
checks and the potential for ambiguity). I don't care how many people
say a) that this is not an issue or b) that it's "not a duplication",
in every data system I've worked on, it has been a very bad idea to have
more than one version of the same info that can get out of sync with each
other. Even if you take great care, I'd still always want to check both
and not trust either version of the info blindly. Caching or hashing is
different (i.e. where the caching mechanism is robust), since the
system itself keeps the cache up to date, and one version of the info
is stricty derived from the other rather than both being the source.
3) It uses the extension in a way that goes against common use in computers.
1) Littering the filename with this kind of stuff is potentially confusing do
both devs and users - I know it's been stated that users don't care, but
I don't think that's a good assumption.
2) It does not appear to be an elegant filename policy (and this can be
considered technical as well), since elegance is something designed int
3) Assuming going this route is a mistake, it could be hard to reverse.
I just don't want to see something like this happen as a quick fix without
exploring all of the implications and how it effects what I consider a very
good system (portage/ebuilds) currently. Also, it seems to me that there are
lots of other alternatives that have been discussed here (and some dismissed
rather quickly). Portage and its policy are very core to Gentoo, and care
should be taken on this.
P.S. I just joined Gentoo this year, and it is disheartening to see the
nastiness that some people are resorting to on this list. I've never seen so
much anger and biting remarks in a project, and I can imagine it keeps some
from responding, which is ashame, since issues like this benefit from many
firstname.lastname@example.org mailing list