[gentoo-dev] Re: Re: [RFC] PROPERTIES=virtual for meta-packages (clarification of definition)

2008-09-09 Thread Steve Long
Ciaran McCreesh wrote:

> On Mon, 08 Sep 2008 22:40:37 +0100
> Steve Long <[EMAIL PROTECTED]> wrote:
>> >> * should be treated as being very quickly installable
>> >> * should be treated as having zero cost for installs
>> >>
>> Both of which follow from "installs nothing." Or would you disagree?
> 
> No, they're separate properties, with different implications.
>
Sure I understand that there are other properties which need to be
addressed, and can be in APIx, but for the classic virtual as defined,
which may be extended to be considered as having the associated cost of
installing its deps in pkg-selection terms, or not, the given notation
suffices.
 
> Consider, for example, a split baselayout-style package. There could be
> a skeleton-filesystem-layout package that does all its work in pkg_*
> functions (to avoid permission and empty directory problems that come
> from installing directories via the normal methods). It would install
> nothing, but should not be considered for either zero-cost property.
>
Well, if that package spat a load of directories onto my system I'd
personally consider it as installing something, and I'd expect those
directories to be listed in its contents.
 
> Or, for the reverse: a package that merely installs a simple control
> file that enables functionality in another package may well be best
> considered as zero-cost for package selection. If a package depends
> upon || ( big-scary/processing-package simple-little/plugin-for-foo )
> and you already have foo but not plugin-for-foo installed, the right
> thing for the resolver to do would be to suggest plugin-for-foo.
>
Sure.
 
> As for the quickly installable property, plugin-for-foo might not
> possess it -- for example, vim plugins generally do a vim tag
> regeneration upon pkg_postinst, so they're not 'quick' to install even
> if all they do is provide one text file.
> 
Great, thanks for outlining some use-cases for the split properties. If
virtual turns out to need a slightly different set if and when the extended
properties are brought in, that can easily be done. I don't see that
there's any conflict.





Re: [gentoo-dev] Re: Re: [RFC] PROPERTIES=virtual for meta-packages (clarification of definition)

2008-08-31 Thread Ciaran McCreesh
On Sun, 31 Aug 2008 03:29:16 +0100
Steve Long <[EMAIL PROTECTED]> wrote:
> > Except that that's not what it's being used to mean. It's being
> > used to mean "the cost of selecting this when doing dependency
> > resolution cost analysis is zero", which is an entirely different
> > thing.
> >
> So it's zero-resolution-cost now? 

No, the overall cost in resolution is potentially non-zero. But the
cost of selecting it for an install when resolving it is zero.

> Yes, that *is* different (although
> I'd use free-resolve. "free" is well understood as often meaning
> "zero-cost," which isn't a phrase most English-speaking people use.
> It only has meaning within the PROPERTIES variable, so it's not going
> to clash with anything.)

free means lots of things.

> > Users don't need to see it. Heck, most developers don't need to see
> > it.
> > 
> Well any dev using it will do, and I believe most of them start out as
> users. Anyone reading the ebuild will see it, and the fact that it's a
> well-understood term, within Gentoo at least[2], makes it easier for
> the PM user-base to work with.

virtual is a well-understood term that does not mean what the property
being discussed will mean.

> It's a cultural "people understand this already" point as opposed to a
> technical make-it-as-explicit-as-we-can one.

And with this 'understanding' comes lots of misconceptions about what
it means. 'virtual' implies lots of things that this property does not.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


[gentoo-dev] Re: Re: [RFC] PROPERTIES=virtual for meta-packages (clarification of definition)

2008-08-30 Thread Steve Long
Ciaran McCreesh wrote:

> On Sat, 30 Aug 2008 10:59:41 +0100
> Steve Long <[EMAIL PROTECTED]> wrote:
>> I concur that it makes a lot of sense, fitting in exactly with the
>> meaning originally given. That it means 'zero-install-cost' is
>> neither here nor there imo; 'virtual' is a well understood terms for
>> the same thing: an ebuild that doesn't in itself install anything.
>
> Except that that's not what it's being used to mean. It's being used to
> mean "the cost of selecting this when doing dependency resolution cost
> analysis is zero", which is an entirely different thing.
>
So it's zero-resolution-cost now? Yes, that *is* different (although I'd use
free-resolve. "free" is well understood as often meaning "zero-cost," which
isn't a phrase most English-speaking people use. It only has meaning within
the PROPERTIES variable, so it's not going to clash with anything.)

'Since new-style virtuals are a type of "meta-package", I'd prefer that we
introduce some type of package metadata into the EAPI that distiguishes
meta-packages (those that do not install anything) from normal packages.'[1]

>> It's clearly something that can be useful across the tree, and can
>> apply to an ebuild as opposed to a package. Forcing a category (or a
>> pkgmove which is a pita aiui) seems inelegant (and doesn't enable the
>> second use-case); the property is far more appropriate, and as you
>> say, 'virtual' is less confusing for a user than 'zero-install-cost',
>> especially within Gentoo.
> 
> Users don't need to see it. Heck, most developers don't need to see it.
> 
Well any dev using it will do, and I believe most of them start out as
users. Anyone reading the ebuild will see it, and the fact that it's a
well-understood term, within Gentoo at least[2], makes it easier for the PM
user-base to work with.

It's a cultural "people understand this already" point as opposed to a
technical make-it-as-explicit-as-we-can one.

That it's easier to scan and type is a bonus.

[1] http://bugs.gentoo.org/show_bug.cgi?id=141118#c5 (bug has previously
been cited as part of the motivation for this property.)
[2] Of course for a new project, one could use whichever term one felt like,
since users would be expecting a divergent codebase. Heck, it might even be
worth changing names of stuff just for the sake of appearing shiny (or to
kill backward-compatibility, or make it harder for people to make the
mental switch back. Every little helps.)