public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Patrick Lauer <patrick@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: [gentoo-dev] The fallacies of GLEP55
Date: Thu, 14 May 2009 20:06:51 +0200	[thread overview]
Message-ID: <200905142006.51998.patrick@gentoo.org> (raw)

For quite some time (over a year, actually) we've been discussing the
mysterious and often misunderstood GLEP55. 
[http://www.gentoo.org/proj/en/glep/glep-0055.html]

The proposed solution to a problem that is never refined, in short, is to add
the EAPI into the ebuild filename "to make things easier". Which is a rather
unsubstantiated idea that doesn't really add up if you look at it ... and it 
adds some artifacts that we've been laughing about for a decade because 
microsoft did the exact same thing (binding the executable-ness of a file to 
the filename).

Here's just some of the theories in support of GLEP55 that have been thrown at
me, and a few words to show how they are not really issues:

"You need to know the EAPI to parse the ebuild to find the EAPI"
Obviously that's not true, because somehow we manage at the moment.
And if one does a small restriction (which doesn't restrict current behaviour
because all in-tree ebuilds currently fit within this limitation) it becomes
trivial again:

Let EAPI be defined as (the part behind the = of) the first line of the ebuild
starting with EAPI=

As long as ebuilds remain shell-like this is not much of a restriction, and 
any format that diverges enough to make this inconvenient shouldn't be called 
an ebuild anyway. Finding the EAPI is then quite unsurprisingly trivial.

"You need to parse the ebuild and its eclasses to find the EAPI!"
See above, and eclasses shouldn't change EAPI anyway. It leads to lots of
strange effects and is implicitly impossible with GLEP55 anyway, so it might 
be easier to just declare it invalid. 

"It's slower!"
The theory here being that a stat() is needed if it is encoded in the 
filename, but a stat() followed by an open() to parse it from the file.
Well then, just cache it! You can use the mtime to check the cache validity 
(which means you do a stat() anyway, so with glep55 caching it is actually 
slower!), and then you have to parse the ebuild anyway for the other metadata. 
So the "extra" cost of finding the EAPI is ... what extra cost?
The only case when it is actually slower is when there is no cache because 
then you have to parse the ebuild. But that "degenerate" case will only hit 
some overlay users and people like developers that can wait .3 seconds longer. 
And ... uhm ... to extract other metadata like DEPENDS you'll have to parse it
anyway.

"But we need to be able to change things in the future!"
Well then. Once we have identified such an issue we can do the changes. Until
then it's not even clear if there are such changes, so why should we break
current known and predictable behaviour to satisfy a need we don't even have?
Make a structured proposal defining a concrete problem in unambiguous terms,
list all the ways to solve this issue, including advantages and disadvantages,
and we can get it voted on and ratified within a month.

"We want to change the versioning rules!"
Why do you want that, and what do we gain from it? 

"Having GLEP55 allows us to add GLEP54 without issues!"
Yeah, uhm, the live-ness of an ebuild is an attribute. How about we add it to
metadata, as we should for all metadata? Define a key, I don't know ... LIVE ? 
LIVE="true". There. No need to fix the filename. And now stop mixing up issues
because it is highly confusing!

"Obviously you don't understand the issue, because if you did you'd support 
it!"
Uhm, obviously you have no idea what you are saying. But  just to play along
... if it were that obvious we wouldn't have had to discuss it for so long.
Maybe understanding the issue forces one to support the current behaviour!


A few words in closing - 

We can encode all the relevant info in "the first line of the ebuild starting
with EAPI="
The overhead of parsing out this value for all ebuilds in the tree has been
timed at ~2 CPU-seconds by solar. It's negligible.
The changes are none at the moment, all that changes is the specification. And
if we ever have the need to change things around we can still look at the
expected costs and benefits and decide to implement something almost, but not
completely unlike GLEP55. And maybe we can now spend the same amount of
council-time (it has been eating time for over a year!) to get important 
things done ...

hth,

Patrick the bonsaikitten


P.S. http://dev.gentooexperimental.org/~dreeevil/whargarbl.jpg



             reply	other threads:[~2009-05-14 18:06 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-14 18:06 Patrick Lauer [this message]
2009-05-14 18:39 ` [gentoo-dev] The fallacies of GLEP55 Ciaran McCreesh
2009-05-14 19:05   ` Patrick Lauer
2009-05-14 19:11     ` Ciaran McCreesh
2009-05-14 19:17       ` RB
2009-05-14 19:20         ` Ciaran McCreesh
2009-05-14 19:24           ` Patrick Lauer
2009-05-14 19:33             ` Ciaran McCreesh
2009-05-14 19:16     ` Robert Bridge
2009-05-15 19:29       ` [gentoo-dev] " Steven J Long
2009-05-14 19:09   ` [gentoo-dev] " Tomáš Chvátal
2009-05-14 19:17     ` Ciaran McCreesh
2009-05-15  1:42   ` George Prowse
2009-05-15  7:30     ` David Leverton
2009-05-15 10:44   ` Richard Freeman
2009-05-15 16:16     ` Robert R. Russell
2009-05-15 16:29       ` Ciaran McCreesh
2009-05-15 19:12       ` [gentoo-dev] " Steven J Long
2009-05-15 19:17         ` Ciaran McCreesh
2009-05-15 20:06           ` [gentoo-dev] " Steven J Long
2009-05-15 20:13             ` Ciaran McCreesh
2009-05-24 20:53               ` [gentoo-dev] " Steven J Long
2009-05-24 21:10                 ` Ciaran McCreesh
2009-05-15 20:32             ` [gentoo-dev] " David Leverton
2009-05-24 20:40               ` [gentoo-dev] " Steven J Long
2009-05-24 20:58                 ` David Leverton
2009-05-14 19:06 ` [gentoo-dev] " David Leverton
2009-05-14 19:15   ` Jeremy Olexa
2009-05-14 19:24     ` Ciaran McCreesh
2009-05-14 20:03 ` Ben de Groot
2009-05-14 21:16   ` Peter Alfredsen
2009-05-14 21:49     ` William Hubbs
2009-05-14 21:53       ` Ciaran McCreesh
2009-05-14 22:44         ` Patrick Lauer
2009-05-15 18:58           ` Arun Raghavan
2009-05-15 19:11             ` Ciaran McCreesh
2009-05-26 14:06               ` [gentoo-dev] " Steven J Long
2009-05-15 19:43         ` [gentoo-dev] " William Hubbs
2009-05-15 19:49           ` Ciaran McCreesh
2009-05-16  9:27             ` Tobias Klausmann
2009-05-16 11:33               ` [gentoo-dev] " Duncan
2009-05-26 14:01                 ` Steven J Long
2009-05-16 14:12               ` [gentoo-dev] " Ciaran McCreesh
2009-05-16 14:50                 ` [gentoo-dev] " Steven J Long
2009-05-16 14:57                   ` Ciaran McCreesh
2009-05-16 15:15                     ` Richard Freeman
2009-05-16 15:20                       ` Ciaran McCreesh
2009-05-16 15:34                         ` Richard Freeman
2009-05-16 15:36                           ` Ciaran McCreesh
2009-05-16 15:32                 ` [gentoo-dev] " Tobias Klausmann
2009-05-16 15:34                   ` Ciaran McCreesh
2009-05-16 15:43                     ` Tobias Klausmann
2009-05-16 15:49                       ` Ciaran McCreesh
2009-05-16 15:55                         ` Tobias Klausmann
2009-05-16 15:57                           ` Ciaran McCreesh
2009-05-16 16:15                             ` Tobias Klausmann
2009-05-16 16:19                               ` Ciaran McCreesh
2009-05-16 16:31                                 ` Tobias Klausmann
2009-05-16 16:38                                   ` Ciaran McCreesh
2009-05-16 16:54                                     ` Tobias Klausmann
2009-05-16 16:58                                       ` Ciaran McCreesh
2009-05-16 17:13                                         ` Tobias Klausmann
2009-05-16 17:53                                           ` Ciaran McCreesh
2009-05-17  4:54                                     ` Richard Freeman
2009-05-16 16:35                         ` Arun Raghavan
2009-05-16 16:39                           ` Thomas Anderson
2009-05-16 16:44                             ` Arun Raghavan
2009-05-16 16:47                               ` Ciaran McCreesh
2009-05-16 16:54                                 ` Arun Raghavan
2009-05-16 16:59                                   ` Ciaran McCreesh
2009-05-16 17:09                                     ` Arun Raghavan
2009-05-16 17:55                                       ` Ciaran McCreesh
2009-05-16 19:12                                         ` Arun Raghavan
2009-05-16 19:21                                           ` Ciaran McCreesh
2009-05-17  4:56                                             ` Arun Raghavan
2009-05-16 23:39                                         ` Nick Fortino
2009-05-16 23:48                                           ` Ciaran McCreesh
2009-05-17  1:17                                             ` Nick Fortino
2009-05-22  2:04                                               ` Robert R. Russell
2009-05-17  0:31                                           ` Ravi Pinjala
2009-05-17  4:35                                             ` Richard Freeman
2009-05-17 11:40                                               ` Thomas Anderson
2009-05-17 12:00                                                 ` Arun Raghavan
2009-05-17  0:35                                           ` [gentoo-dev] " Duncan
2009-05-17  0:50                                             ` Ciaran McCreesh
2009-05-17  1:58                                               ` Duncan
2009-05-17  4:43                                                 ` Richard Freeman
2009-05-17  7:29                                                   ` Patrick Lauer
2009-05-17 11:14                                                     ` David Leverton
2009-05-17  7:40                                               ` Tiziano Müller
2009-05-17  8:01                                                 ` Patrick Lauer
2009-05-16 16:39                           ` [gentoo-dev] " Ciaran McCreesh
2009-05-16 18:38                             ` Robert Buchholz
2009-05-16 18:42                               ` Ciaran McCreesh
2009-05-16  9:27             ` Marijn Schouten (hkBst)
2009-05-16  9:59               ` David Leverton
2009-05-16 11:11                 ` Ben de Groot
2009-05-16 18:10                   ` William Hubbs
2009-05-16 18:14                     ` Ciaran McCreesh
2009-05-16 18:22                       ` William Hubbs
2009-05-16 12:14                 ` [gentoo-dev] " Duncan
2009-05-16 14:15                   ` Ciaran McCreesh
2009-05-16 17:28                   ` David Leverton
2009-05-16 20:00                     ` Joe Peterson
2009-05-16 20:11                       ` Denis Dupeyron
2009-05-16 20:13                         ` Denis Dupeyron
2009-05-17  8:29   ` [gentoo-dev] " Alistair Bush
2009-05-17 13:04     ` Richard Freeman
2009-05-16 21:58 ` [gentoo-dev] " Mark Bateman
2009-05-16 22:06   ` Ciaran McCreesh
2009-05-17  4:07     ` Mark Bateman
2009-05-17 16:35       ` Ciaran McCreesh
2009-05-17 16:54         ` Patrick Lauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200905142006.51998.patrick@gentoo.org \
    --to=patrick@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox