On Sat, 19 Jun 2010 13:18:21 -0700 Brian Harring wrote: > From pkgcore's view, the 1st ':' is required- if there is no slot > dep, leave it empty. The second demarks the start of a repository > dep. I prefer the "always ::" form, simply because it's easier to go "if repo, then add ::repo" than it is to go "if repo, then add :repo, but also stick another : in there if we've not done a slot". What a repo dep looks like shouldn't change based upon whether there's also a slot dep there. > > Also note that that specifically only covers packages that are *in* > > the ::gentoo repository. The package you have installed *from* the > > gentoo repository is ::gentoo->/ or ::gentoo->installed . > > '->' doesn't work very well though; specifically, the '-' is allowed > as part of a repository name. Backtracking parsers can handle that > fine, it's just nonoptimal to have one of the splitter char's be part > of the allowed character set for a name. Eh, I'd hardly take "your parser must support a single character lookahead" to be a defining argument, especially when you consider the mess that's needed to split pkg-ver up. > @, or some other char that is explicitly disallow seems a better > choice. The rationale behind -> is that it reads clearly. ::from->to reads like what it does. Experience has shown that users do need and make use of both forms (although unfortunately they're less inclined to appreciate the difference between ::installed and ::/ ), so it's best to pick something they can eventually understand. On a semi-related note: real world experience has also shown that every time we've thought about using ::repo deps of any kind in a repository rather than a user context, it's been the wrong thing to do, and the right thing to do is almost always [feature(-)]. -- Ciaran McCreesh