On Sat, 21 Oct 2006 08:31:31 -0700
Brian Harring <[EMAIL PROTECTED]> wrote:

> On Sat, Oct 21, 2006 at 02:27:19PM +0000, Philip Walls wrote:
> > On Sat, Oct 21, 2006 at 02:34:08PM +0100, Ciaran McCreesh wrote:
> > > On Sat, 21 Oct 2006 12:51:19 +0000 Philip Walls <[EMAIL PROTECTED]>
> > > wrote:
> > > | This argument here can also be applied to the -r#.# solution you
> > > | mentioned, so I think the decision between -r#.# and -local# is really
> > > | just a matter of aesthetics. I'm on the fence as to which is best.
> > > 
> > > The -r#.#.#.# solution is cleaner IMO. With -local# you'd still need to
> > > handle -local#.# or -local#-reallylocal-# to allow users to override
> > > overlays that override the main repository.
> > >
> > 
> > I have a feeling the above is a solution waiting for problem, but from
> > a flexibility standpoint I actually really like it :)
> > 
> > Adding this kind of revision number will convolute the version
> > comparison a bit, and the dep calculation will have to be patched to
> > allow this (currently it only allows for real floating point numbers).
> > 
> > I think we'll want to refactor the vercmp() so that there is a
> > separate function for comparing version numbers (eg. 1.5 vs. 1.100 vs.
> > 1.02) which the revision comparison can use as well.
> 
> Be aware that if you reuse the vercmp logic, you're getting the 
> special case float comparison rules, meaning 1.02 is less then 1.1 in 
> comparison...
> 
> Wouldn't introduce that for rx.y personally unless you've got a good 
> reason for it.

Do you have a good reason to
a) limit -r to X.Y instead of a full version specifier (i.e. -r1.2.3a)?
b) use different semantics for these parts?

Still have the issue with the = operator though, not sure which way to go there:
- do nothing and let users handle the problems
- change semantics of = to only check the first part of a revision specifier 
(IMO intransparent, also means that users loose the ability to specify an exact 
version+revision in atoms)
- add a new operator that acts like = except that it only checks the first 
component of a revision specifier
- tell devs to write deps in a way to account for this feature (might be quite 
complicated in some cases)

Marius
-- 
gentoo-dev@gentoo.org mailing list

Reply via email to