www-repository mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michal Maczka <mmac...@interia.pl>
Subject Re: [proposal] java artifact specifier v0.1
Date Mon, 10 Nov 2003 09:36:48 GMT
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/ReadMsg?listName=repository@apache.org&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





Mime
View raw message