[Exherbo-dev] Tags vs. categories

Jonathan Dehan jdehan at gmail.com
Fri Jul 11 07:22:51 BST 2008

On Thu, Jul 10, 2008 at 6:49 PM, Ciaran McCreesh <
ciaran.mccreesh at googlemail.com> wrote:

> On Thu, 10 Jul 2008 01:37:19 -0400
> "Jonathan Dehan" <jdehan at gmail.com> wrote:
> > I propose having the on-disk format as follows:
> >
> $packagedir/packages/$repository/$provider/$package-$version-$revision.$format
> > $provider can be {organization,main_developer,homepage}. It does not
> > need to be consistent, for it will only be used to help uniquely
> > identify a package (along with $repository) and all its versions if
> > just the $name is ambiguous.
> There's a non-obvious downside to doing this: for sane performance, we
> want directories with typically between ten and a hundred items in
> them. As it happens, categories the way they are currently fit into
> this.

Do you suspect there to be more than 100 providers per repository, or more
than 100 exheres per provider? If you do decide to keep every minor version
of a package and group things to broadly i guess the second is possible.
Being more specific is better with providers though -
http://pim.kde.orginstead of
http://kde.org etc. Still if it seems there will be a ton of exheres per
provider per repository maybe adding yet another directory of just the
package name
($packges/$repository/$provider/$package/$name-$version-$revision.$format .
Otherwise that is a big hurdle to get around.

> > For more in depth browsing, and not just tag searching, the tags can
> > be exported as symlinks in
> >
> $packagedir/tags/{$all-tags}/{$all-tags-plus-the-tag-selected-above}/{etc,etc}/name-provider-repository
> > ->
> >
>  $packagedir/packages/$repository/$provider/$name-$best_available_version_and_revision.$format
> >
> > Exporting all permutations of tags as symlinks on the filesystem
> > makes it very flexible to browse for packages, at least until a
> > proper interactive client comes around.
> That strikes me as a maintenance pain in the ass.
> --
> Ciaran McCreesh

I do not claim to know the amount of code that would be required to make a
sync hook to add/remove new/dead exheres. A --regenerate-symtags could be
difficult as well. A proper client to do realtime browsing would probably be

My brain is dying, heres a list of stuff:
1) Separate the unique identification of a package from other features (like
the currently unusable way to browse packages).
 solution: replace categories with providers
 requirement: keep item count of any given directory under 100
 todo: make a fake tree from existing data to support a particular scheme

2) Provide a simple tag based search mechanism.
 solution: add TAGS="foo bar" to exheres and use inquisitio
 requirement: choose format for TAGS
 todo: implement it

3) Provide a robust browsing mechanism.
  solution a: live search of tags to pare down list in some client (probably
  requirement a: must be fast
  todo a: raise gtkpaludis back from the dead, or use packagekit :-p

  solution b: export tags as filesystem symlinks
  note b: this pretty much blows

  solution c: implement live search with inquisitio - thing tab completion
that shows a list of more tags that would help pare down the search, plus a
list of all the packages that match the current command.

I think the first two items have good solutions, but the third is a bit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.exherbo.org/pipermail/exherbo-dev/attachments/20080711/ad183fc4/attachment-0001.htm>

More information about the Exherbo-dev mailing list