on slashpackage hierarchy

Zenaan Harkness <[email protected]> Mon, 18 Oct 2010 03:48:47 +1100
Newsgroups gmane.comp.djb.package
Message-ID <[email protected]>
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 to=
ol.
=A0- Eg: Debian's pool/ package hierarchy
=A0- debian also use liba/, libb/ etc, since so many libs they messed up l/

I changed my /setups/*category* (setups =3D 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:
=A0/package/d/djbdns/*

This is desirable not only for humans, but also for automated tools/
package management tools. Eg debian's
=A0- "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