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


licenses:
 http://repo.apache.org/apache/ant/1.5.4/licenses/LICENSE.txt





I am still against versionless filenames:
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






Reply via email to