Categories are evil

Chris Pickel sfiera at macports.org
Wed Aug 22 09:55:05 PDT 2007


On 22 Aug, 2007, at 5:34, Randall Wood wrote:
> Well, no, not really. Its just that I think that they are a really  
> bad way to physically organize the ports collection.
>
> I understand that categories are an important and useful tool for  
> organizing and grouping ports, but when thinking about a GUI for  
> the MacPorts system, I realized that categories should best be  
> thought of as a set of semi-standardized keywords which any  
> mechanism for searching for ports should recognize. I have also  
> been long bugged by the need to decide which category is the  
> primary category for a port when placing it in the ports collection.
>
> I understand the rational for Juan's desire to move the ports tree  
> out of trunk, and would like to suggest that when (if) that  
> happens, that the structure of the ports collection should, at the  
> same time, change from collection/category/port to collection/a/ab/ 
> port, where 'a' is any lowercase alphanumeric character and 'ab' is  
> a combination of any two lowercase alphanumeric characters, and  
> that any port in directory a/ab should start with the characters ab.
>
> I understand that some directories under the proposed scheme may be  
> large, such as /p/p5, /p/py, /g/gn but it seems that this would not  
> be any real change from the current situation for the perl, python,  
> devel, and other directories that exist now.

Personally, I would like to see an "Portdirs" (or some such) file  
added to ports/, containing a list of dirs to search for for  
portfiles. The current one would be:

aqua/*
archivers/*
audio/*
...
zope/*

and yours would be equivalent to:

a/*/*
b/*/*
c/*/*
...
z/*/*

I think the default should be "*/*" for backwards compatibility, but  
a Portlist of "*" would provide a prefix-less repository as alluded  
to later in the thread.

What this buys us is:
  * We can set up deeper hierarchies; there are plenty of python,  
perl, &c. ports that are basically "a textproc port for python" and  
these could be in e.g. "python/textproc".
  * We can exclude, say "groups" and put the PortGroup files there,  
allowing us to sync the PortGroups with the ports tree.
  * Users have flexibility to determine their own organization scheme  
for their personal repositories, including the prefix-less "*".

I'm bringing this up because I think it's a more flexible  
modification; I don't personally see the need to change the port  
hierarchy to alphabetical organization. A GUI tool can organize the  
tree however's appropriate, and when I want to cd to a port's  
directory, `cd */mpd` works fine if I don't remember it's 'audio'.  
Under your scheme I'd just switch to `cd **/mpd`.


Chris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : http://lists.macosforge.org/pipermail/macports-dev/attachments/20070822/d8a6cab0/PGP.bin


More information about the macports-dev mailing list