Libraries and hierarchies

Alastair Reid alastair@reid-consulting-uk.ltd.uk
Tue, 5 Aug 2003 14:50:14 +0100


> 	a) There are fewer packages, so some central help-yourself
> global registry is feasible, as Simon M suggests.

Note that URIs make pretty good unique package names.  When used this way, 
URIs can take several forms:

1) The URI can be a pointer to an actual file to be downloaded like 
http://haskell.org/greencard/gc-3.01.tar.gz

This is a good choice because it often exists for publicly released software 
and following the pointer produces something useful.  The pointer usually 
contains a version number and so will be unique.

2) The URI is of the form http://organization/local-package-name/version and 
does not point to an actual file you can download.

The organization is the URI to some group that is handing out locally unique 
package names.  Some example organizations might be:

   haskell.org
   sourceforge.org
   reid-consulting-uk.ltd.uk
   microsoft.com/~simonpj
   microsoft.com    <- an independent organization from ~simonpj

The local package name should be unique within the organization but package 
names from other organizations can overlap.

The version number can be whatever the individual author feels like using - as 
long as it is unique.

Although the URI doesn't point at the actual package, it is probably good 
practice if it points at something which tells you about the package and 
where to download it.  For example, Tweaking the form of the URI slightly, we 
could have:

  http://haskell.org/packages#greencard-3.01

where http://haskell.org/packages might be a web page that tells you how to 
install packages for Debian, FreeBSD, Windows, etc. and the anchor 
#greencard-3.01 doesn't point to anything at all.   

--
Alastair Reid