on slashpackage hierarchy
Zenaan Harkness <zen <at> freedbms.net>
2010-10-17 16:48:47 GMT
re "Why classify packages at all? Why admin/daemontools instead of
simply daemontools? The answer is simply that many people complain
when a single directory gets too big. "
I used to classify by categories, my downloaded software (/setups) and
downloaded documentation (/setups/doc/), as well as my own work
documents (~/work/ - letters, legal documents for many people I have
assisted, and other work products).
Problem: Categories overlap (eg web, mail, net), often horribly (same eg.).
Problem: Newer created categories may be 'more appropriate' for a
package previously assigned to a different category.
Problem: Package management tools must first map from package name to
category name, before locating a named package (eg. user wants to show
"package-status djbdns").
1)
Underlying dynamic: human need for complexity management tools.
Categorization is a legitimate complexity management tool.
Alphabet single-letter directories is a legitimate complexity management tool.
- Eg: Debian's pool/ package hierarchy
- debian also use liba/, libb/ etc, since so many libs they messed up l/
I changed my /setups/*category* (setups = software downloads) and
/setups/doc/*category*, and /work/*category*, to be as follows:
/setups/[0-9a-z]/*
/setups/doc/[0-9a-z]/*
/work/[0-9a-z]/*
~/work example:
~/work/m/matter/[au|us|etc]/[a-z]/*
eg:
~/work/f/forms/*
~/work/m/matter/au/h/harkness-zenaan/*
~/work/m/matter/au/s/smith-john/*
In my case, country (au|us) is a category, and then the alphabetical
by surname. This works very well for me; makes it easy to locate a
particular client's work products.
Alphabetical directories are a desirable complexity management tool to
me, once I hit more than about 50 entries in a directory. Filesystem
navigation/ tab completion works well for me.
Since I'm on GNU system, I can and do use symlinks to add in
categories as well, as a convenience, in my /setups/ hierarchy.
If I were to use /package or similar, I would not use it without this
debian-style alphabetical directories complexity management tool. I
would have:
/package/a/*
/package/b/*
etc
If you included such a recommendation in your slashpackage docs, I
might use /package. If you recommended against doing so, I would use a
different /apps directory. An alphabetical organization does not
conflict with your categorization organization.
Alphabetical means 26 extra directories inside /package (or eg /apps).
Alphabetical means low cognitive overhead. I know default installed
djbdns can be found at:
/package/d/djbdns/*
This is desirable not only for humans, but also for automated tools/
package management tools. Eg debian's
- "apt-cache show djbdns"
would not have to first map from package name to category name, just
to find the package, but can instead just go to /package/d/...
(I imagine /package/d/unversioned-name/META/ might be a good standard
for metadata location; but that's another conversation/ process.)
Feedback sought,
Zenaan