On Sat, Jul 26, 2014 at 12:14 PM, Ciaran McCreesh
<ciaran.mccre...@googlemail.com> wrote:
> On Sat, 26 Jul 2014 16:05:58 +0000 (UTC)
> Martin Vaeth <mar...@mvath.de> wrote:
>> Ciaran McCreesh <ciaran.mccre...@googlemail.com> wrote:
>> > Your solution fails spectacularly in the following ways:
>
>> > * Introduction of :=3D dependencies
>>
>> This is not a "minor update" in dependencies
>> and thus requires a revbump.
>
> So what is a "minor update", and what are you planning to do to prevent
> what you call "useless rebuilds" when := dependencies are introduced?
>

Picking this to illustrate my point, not to endorse a particular
implementation here...

This is what I'm getting at when I argue that we don't need a solution
to every possible problem.  If we only accept solutions that handle
conditional dependencies, IUSE changes, new eclass inherits, dep
additions, dep removals, etc, then it does seem likely to me that
we'll never find a good solution.

On the other hand, if we can come up with something that RELIABLY
fixes things for 3/4ths of these, then that is probably good enough.
I'm not certain at this point that even such a partial solution
doesn't exist, but the fact that any particular solution doesn't
handle every possible case isn't automatically a reason to reject it.

Preventing unnecessary rebuilds is a worthwhile goal, even if we can't
get 100% of the way there.  If you don't care whatsoever about
unnecessary rebuilds then we can simplify things tremendously - just
have the package manager default to --emptytree on all operations.
Sure, it might cause a "few" unnecessary ebuilds but whether your
package manager attempts to support dynamic deps or not you'll
certainly have an up-to-date dependency cache.

Rich

Reply via email to