[Exherbo-dev] Tags vs. categories
exherbo at bernd-steinhauser.de
Wed Jul 9 19:13:06 BST 2008
Tags are often proposed as a solution or replacement for the categories.
I'm not sure, if that is a good idea.
Basically, what we are talking about when discussion that are three
parts, which aren't always seen separate, which is not always good.
These three things are:
1. The (file/dir) structure that the package manager sees
2. The (file/dir) structure that the developer/maintainer works on
3. The interface that the user uses
The thing with the categories is, that it tried to solve all three at
once, and actually, it isn't really doing that well (which is, why there
are quite often package moves etc.).
I don't know if we can find a good way to split the first two without
losing, but I do think, that we can split the third one off, at least
Tags would provide a solution to find stuff.
Searching for tags instead of categories (and package names) has several
- You can't have enough of them
(meaning, creating just another tag shouldn't be seen as bad as
creating another category is seen)
- Adding or removing tags is painless (because it doesn't affect the
- You can add as much tags to a package as you want (and you really should)
So what would a user do to install a package, lets say gcc?
First, he would search for the package, which might look like this:
inquisitio --search --tags compiler cpp
That might print a list of cpp compilers (note, that gcc might have both
the cpp and the c++ tag, so --tags compiler c++ should display it, too).
Each package is printed with the information needed to install it, which
atm would be sys-devel/gcc, but might be something totally different in
the future. It could be I/am/definitely/murks/gcc, it doesn't really matter.
Then he would install the package using paludis.
Maybe an installation mode might be possible using tags, if the tags are
enough to narrow it down, but maybe that might not be a good idea.
The good thing about this is, that 1. and 2. can change, but what the
user uses (and he should mainly use the tags) stays the same, so a
change wouldn't cause as much confusion as it would if all three change.
If we also (auto-)create some special tags, like system, world or
installed, it would also be possible to for example search for all
installed cpp compilers using --tags installed compilers cpp.
(Currently one would use --kind for that.)
But here we see the problem with tags.
Changing tags should not have any affect on 1. or 2., so tags should are
not a complete replacement for the categories we currently use.
The should be used for the user interface and only there, not for the
structure our repos have.
More information about the Exherbo-dev