
Alastair Reid writes:
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
Ok, but as I mentioned before we'd like to keep package names as short as possible, for two reasons: they will be included in symbol names in a compiled library, and because it's just easier to talk about "hgl-1.0" than it is to talk about "http://haskell.org/packages#hgl-1.0". So let me suggest a compromise. I suspect that using haskell.org as the main organisation which hands out package names will be fine for a long time to come, so lets use the convention that If the package name is not an absolute URI, then it is taken to be relative to http://haskell.org/packages. This doesn't conflict with your scheme, but lets us get away with short package names for most purposes. Thoughts? Cheers, Simon