On Sun, Jun 26, 2011 at 08:02:57AM +0100, Ciaran McCreesh wrote:
> Here's a completely different way of doing tags:
> First, standardise sets. We probably want to go with a format along the
> lines of:
> eapi = 4
> description = Monkeys
> where eapi has to be on the first line.
> Second, make a bunch of sets named kde-tag, editors-tag, xml-tag,
> monkeys-tag etc.
This is a bit inverted- tagging is fundamentally pkg specific. If we
did as you proposed and I wanted to find out all tags/descriptions for
a pkg, the PM would have to scan every tags file there.
Additionally, as others have indicated, it sucks have this data tucked
away in another chunk of the tree, away from where the package data
actually is (in cat/pkg/*).
> Advantages: dead easy to implement, backwards compatible, we need sets
> Disadvantages: doesn't use some horribly convoluted system of XML,
> wikis and web 2.0.
Counter proposal; use what you're proposing as a cache. metadata.xml
is the proper place for this- we store use.local data there for
example, and cache the results of it in profiles/use.local.desc. Via
this vcs concerns are addressed, data locality is preserved, and
multiple modes of lookup are sanely supported.
Roughly, and this is definitely a rough sketch:
<atom val=dev-util/diffball>tag1 tag2 tag2 tag3</atom>
From there, jammed into profiles, a master description list in 'tag:
description' style format. Identifying the eapi is easy enough- just
inspect the atom's that wind up in the tags list. Easy enough.
Either way... thing everyone admits the current tree format has it's
flaws; strikes me it's better to fit to the standards/conventions of
the repo format as it is now.
<proceed w/ xml bashing>