Tim Anderson wrote:
Overview --------
The aim of this proposal is to specify the URI syntax for artifacts for java-based projects. It extends the URI syntax proposal: http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]&ms gNo=308
Java project artifacts include, but are not limited to: jars, wars, rars, tlds, source and binary distributions, and licenses.
URI Components --------------
An absolute repository URI is written as follows:
repository-uri = access-specifier "/" product-specifier "/" artifact-specifier
For java artifacts, artifact-specifier is:
artifact-specifier = [type "/"] artifact
type = "jars" | "wars" | "rars" | "tlds" | "binaries" | "source"
| "licenses" | ...
artifact = artifact-name ["-" version] ["-" stype][.ext]
artifact-name = *pchar
stype = "bin" | "src"
ext = "jar" | "war" | "rar" | "tld" | "tar.gz" | "zip" | ...
Checksums & PGP signatures --------------------------
All artifacts may have an associated md5 checksum, of the form:
artifact-specifier ".md5"
or a PGP signatures, of the form:
artifact-specifier ".asc"
Examples --------
jars: http://repo.apache.org/apache/ant/1.5.4/jars/ant-1.5.4.jar http://repo.apache.org/apache/ant/1.5.4/jars/ant-1.5.4.jar.md5 http://repo.apache.org/apache/ant/1.5.4/jars/ant-optional-1.5.4.jar http://repo.apache.org/apache/ant/1.5.4/jars/ant-optional-1.5.4.jar.md5
binaries: http://repo.apache.org/apache/ant/1.5.4/binaries/ant-1.5.4-bin.zip http://repo.apache.org/apache/ant/1.5.4/binaries/ant-1.5.4-bin.zip.md5 http://repo.apache.org/apache/ant/1.5.4/binaries/ant-1.5.4-bin.tar.gz http://repo.apache.org/apache/ant/1.5.4/binaries/ant-1.5.4-bin.tar.gz.asc
source: http://repo.apache.org/apache/ant/1.5.4/source/ant-1.5.4-src.zip http://repo.apache.org/apache/ant/1.5.4/source/ant-1.5.4-src.zip.md5 http://repo.apache.org/apache/ant/1.5.4/source/ant-1.5.4-src.tar.gz http://repo.apache.org/apache/ant/1.5.4/source/ant-1.5.4-src.tar.gz.asc
Why "source" and not "sources"? Plural form of "type" should be used consistently for naming directories.
And why type and what you've called "stype" are expressing the same thing but named differently?
Why not
http://repo.apache.org/apache/ant/1.5.4/sources/ant-1.5.4-source.zip or http://repo.apache.org/apache/ant/1.5.4/srcs/ant-1.5.4-src.zip
And
http://repo.apache.org/apache/ant/1.5.4/binaries/ant-1.5.4-binary.zip
or http://repo.apache.org/apache/ant/1.5.4/bins/ant-1.5.4-bin.zip
I am still against versionless filenames:licenses: http://repo.apache.org/apache/ant/1.5.4/licenses/LICENSE.txt
For sake of consistency there should be no exceptions from the rule that every artifact in repository has version in it's filename.
licenses: http://repo.apache.org/apache/ant/1.5.4/licenses/LICENSE-1.5.4.txt
This results in duplications of version string in the URL. I am not sure if we need a separate directory per version.
We can have: http://repo.apache.org/apache/ant/1.5.4/jars/ant-1.5.4.jar 1.6.0/jars/ant-1.6.0.jar
Or http://repo.apache.org/apache/ant/jars/ant-1.5.4.jar
ant-1.6.0.jar
Both versions of URLs are equally good for tools. As for me the second version is more "human friendly" as it's shorter and repository will be faster to browse.
http://repo.apache.org/apache/ant/1.5.4/KEYS
IMHO "type" directory should be mandatory
We should always use: http://repo.apache.org/apache/ant/1.5.4/keys/KEYS-1.5.4
More rules and exceptions will make entire process harder from point of view of tools.
My proposition is:
repository-uri = access-specifier "/" product-specifier "/" artifact-specifier
For java artifacts, artifact-specifier is:
artifact-specifier = {plural form of type} "/" artifact
type = "jar" | "war" | "rar" | "tld" | "binary" | "source"
| "license" | ...
{plural form of type} = "jars" | "wars" | "rars" | "tlds" | "binaries" | "source" | "licenses" | ... artifact = artifact-name "-" version ["-" type][.ext][.metatype] artifact-name = *pchar ext = "jar" | "war" | "rar" | "tld" | "tar.gz" | "zip" | ... metatype= "md5" | "sha" | "asc"
In my version "type" is used two times in the URL - Directly and in plural form. I have no idea how to formaly denote the plural form of "type".
Michal