Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!flash.alliant.com!sdr From: sdr@flash.alliant.com (Stephen D. Rogers) Newsgroups: gnu.emacs Subject: Re: Emacs Lisp Archives -- organization Message-ID: <8906231624.AA00970@flash.> Date: 23 Jun 89 16:24:10 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 79 == Archive Directory Structure == I have a small set of personal lisp packages (mostly modifications to posted ones) arranged in a tree that is very similar to the one you are proposing. A difference that I consider important is that subdirectories in my tree use category names that are singular, rather than plural. My rationale is best explained with an example. Consider: (autoload 'C++-mode "mode/C++") versus (autoload 'C++-mode "modes/C++") I think that the first alternative better expresses the intent: I want to autoload a C++ `mode', not a C++ `modes'. Another way to describe the difference is in terms of focus. I am focused on *using* the individual lisp packages. Thus I want to use all of a package's relative pathname to describe it, not just the filename. If I were only focused on *maintaining an archive* of lisp packages, then the pathnames to individual lisp packages may not be as important as their categorization. I think that the same directory structure should be used for *archiving* and for *using* lisp packages. However, I also think that the directory structure should be oriented towards package use first, and package archiving second. == Archive File Names== I think that file names in the archive should be based on package names, prefixed by the login name of the author. If login names are duplicated, add a digit to end of the login name. The same prefix should be used for the same author throughout the archive. For example, (autoload 'C++-mode "mode/sdr-C++") Would be used to access a C++ mode provided by me (sdr). If some other sdr submitted a package anywhere else in the archive, he/she would be `sdr1' and so on. For example, let's say sdr1 submitted a new shell mode: (autoload 'shell-mode "mode/sdr1-shell") If a package has several files associated with it, it should be given its own subdirectory, which contains the associated files. For example, let's say sdr1 submitted a set of special shell modes that are built on top of his base shell mode. The base shell mode would still be accessed as (autoload 'shell-mode "mode/sdr1-shell") and the special shell modes would be accessed as (autoload 'C-shell-mode "mode/sdr1-shell/csh") (autoload 'Korn-shell-mode "mode/sdr1-shell/ksh") (autoload 'Bourne-shell-mode "mode/sdr1-shell/sh") ... It would also be worthwhile to provide an AUTHORS file for the archive, which provided a cross reference of author id, name, and e-mail address. For example, sdr "Stephen D. Rogers" srogers@graphics.alliant.com One last thought: If file name length is an issue, perhaps the author specification should be an additional directory level, rather than a prefix. For example, (autoload 'shell-mode "mode/sdr1/shell") Maybe better: we should just add the digit to the package name as an extension. For example, (autoload 'shell-mode "mode/shell.1") In this case, the first field in the AUTHORS file should be the relative package name instead of the author id.