On Sat, 2005-01-22 at 17:11 +0000, Ciaran McCreesh wrote:
> | Somebody noted that eclasses are like libs and must stay "binary 
> | compatible" (as far as one can say that with a bunch of bash
> | functions) to  the old versions.
> 
> No, only to whatever's in the tree at the current time.

Exactly.  Also consider this example.  You have a function, let's call
it games_make_wrapper.  This function accepts four arguments: name,
binary to run, directory to chdir to, and extra LD_LIBRARY_PATH to load.
Now, provided that the function named games_make_wrapper always accepts
these same options and produces the same output, what does it matter if
the internals of the function are completely re-written?  The
functionality is the same and the end result is the same, so 100%
compatibility exists.

Now, consider the addition of a 5th optional parameter to this function.
Since it is optional, it would not affect *any* of the ebuilds that call
the function using only 4 parameters, but would act differently for
ebuilds that use the 5th option.

Under Daniel's proposal, I would have been required to make a new eclass
version for this and would have to start inheriting the new eclass when
it serves no purpose.

This should be true with *every* function in *every* eclass.  If the
function's compatibility is broken, then every ebuild that uses the
functionality needs to be touched or a new eclass needs to be written
for the new function.  At no point is a "version bump" required to get
this functionality.

-- 
Chris Gianelloni
Release Engineering - Operations/QA Manager
Games - Developer
Gentoo Linux

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to