Re: Rsync Emails

2004-08-04 Thread Adam R. B. Jack
On Tue, 3 Aug 2004, Mark R. Diggory wrote:
I'm curious, would others be interested in seeing the rsync emails from 
ibiblio for the rsync that runs every 4 hours on the login.ibibilio.org 
server? I could direct them to this list or possibly the maven devel list if 
its more appropriate.
Are they verbose, or only in errors? This list seems a good place, unless 
overly verbose.

regards
Adam


Re: Rsync Emails

2004-08-04 Thread Adam R. B. Jack
I could possibly tweek it to not send an email if there are no new files 
being moved.
Please do.
regards
Adam


Re: Anywhere near concensus?

2003-12-12 Thread Adam R. B. Jack


  Done:http://cvs.apache.org/~ajack/repository/proposals/

 I think of the group, I like repositoryFQDN/ best.

For me, it is between that and group (oh yeah, I asked for that one. ;-)
'cos they are both of deterministic directory depth/layout.

[BTW: If things get 'overloaded' we can do the traditional /fred -
/f/r/fred w/o changing deterministic depth/layout.]

That said, to me 'group' and FQDN don't need to be any different --- one is
just saying 'for Java projects (or those w/ DN-like packages) the likely
group name is the FQDN of the root package'.

regards,

Adam



Re: Anywhere near concensus?

2003-12-11 Thread Adam R. B. Jack
 IIRC, the repository structure used by Maven
(http://www.ibiblio.org/maven/)
 has generated much discussion in the past, with the
 general concensus being that the flat structure:
 . didn't help artifact categorisation
 . made it difficult to navigate and locate artifacts

Folk have resolved those issues with type and version sub-directories. What
we have now isn't flat.

 It was an excellent first step, but I think it can be done
 better.

Yes, me too, but we need a tight set of useful categorizations, and I'm not
sure that 'sub-project' is one. Artefact id (plus the others) covers that. I
think that things like 'sub-project' are just too fluid and too subjective
to fix into the URI. [Gump has a different view of a project than Maven than
...]

regards

Adam



Re: Use of '/' in ???-specifier's

2003-11-24 Thread Adam R. B. Jack


 Not a criticism, but I'd prefer to know the requirements,
 before writing the tools.

I know, I've been a huge advocate of that, but I'm starting to worry we are
in analysis paralysis. Logical URIs are so virtual it is easy to miss
practical implications. As such, I'd like to test the theory against the
tool implementation in my head.

That said, we need to revisit requirements, especially the tooling aspect of
that.

As Nick said having a tool know/display/process what is in a remote
repostiory w/o metadata is my goal.

 As far as I can tell, maven doesn't do URI parsing.
 I don't know a lot about Gump, but if it wants to pull down the
 newest versions of jars, it can via the latest version tag [1].

Gump (like Maven) has metadata also, so could ask for a certain version of
something. That said, we are talking about client side metadata with all
of these, not in repository metadata. As such, this information is not in
the repostory (per se) and so **not available to repository tools**. This is
the key point.

FWIIW: I *hate* maintaining version information in metadata (in CVS or not)
'cos I think it leads to stale links, and to too much duplication. I think
I've said this (once or twice ;-) before though.

BTW: I'd like the repository to work independent of client metadata, so we
have a consistent repository however tools use it. Maybe we'll have a
metadata.xml per directory that we can all agree upon, and extend, but that
isn't what we have here and now.

 Avalon adds meta-data, which is supported through
 the statement in [2]:
   Projects should be able to deploy arbitrary artifacts to the
repository,
whether they be for end-users, or meta-data (e.g, maven's project.xml).
Tools should ignore any artifact they don't understand.

Yup, but I'd like to see some cross-project-type tools possible. I'd like
tools to be able to work against all types of artefacts, built by Maven, by
Gump, by whomever.

regards

Adam



Re: [proposal] URI Syntax - v0.2

2003-11-15 Thread Adam R. B. Jack
Noel wrote:

 Adam, and how is said tool going to start in the first place?  Without
 meta-data, there is a limit to what the tool can do.  Basically, it would
 have to operate relative to the URL provided to it.

My input here is primarily based on writting Ruper
(http://www.krysalis.org/ruper), a tool that attempts exactly what I said.
It is given links to repositories (local or remote), it read the
repositories and allows queries into that repository based on attributes of
the resources. It does this by parsing the URLs.

You don't have to like the tool, I'm not trying to push the implementation,
I'm just giving you experiences from that tool. It allows you to query what
is there, query and capture oldest resources [and do a delete/clean], and
download newest, etc.

Some find such a tool useful, I'd like to believe that apache users (admins
and external users) would find it useful. I don't care whose implementation
gets used, I feel that these capabilities are so powerful that they ought
consist of a minimum bar for apache.

Sure, it isn't going to be a 100% generic tool for all cases, but apache is
doing this for apache. Let the tools lead and the users (our own committers)
can chose to follow. Once, along came a browser and sooner or later folks
were converting their documents to HTML 'cos the benefits outweighed the
resistence to change. I'm saying that we can't enforce things, but if we
make the benefits sufficiently worthwhile  transition easy folks then most
folks will follow.

Again, this tool works today on over 95% of the contents of the Maven
repository without any spec. We could achieve this. A nice simple IDE plugin
can update a project and download files with or w/o user intervention, e.g.
http://www.krysalis.org/ruper/eclipse/index.html.

 Tim's URI schema supports your operations when combined with with a
semantic
 layer, which can be implied or meta-data based.

Aren't you saying that metadata can allow a remote tool to instrospect? Yes,
I agree, this has nothing to do with an unparsable URI scheme. The URI
scheme is generally fine, but if we aren't addressing metadata (almost
impossible) why set back tools that mine metadta from URIs? It works today,
why would we force a step backwards?

[I sometimes feel the acadaemics of the URI Scheme Specifiecation are
outweighing the practicalities of an implementation. I beleive in writting a
specification first, but specifications get revised based upon real world
experience. Tools are that experience.]

  For me, the strongest argument for tooling (other purely than saving
 admins
  effort) is download + verify (MD5/whatever).

 That does not require the kind of semantic your earlier operations
require.
 The verification content can be relative to the URI provided to the tool.

True, my bad, I go carried away with my argument, the tool I am familiar
with, and my own dislike of stale software links. You could have the client
tool be told the resource/URI by the user, and do the download/verification,
yes. That said, I don't think it buys the user enough, they have to
browse/locate  stash the URI in some local config. I'd like to say go get
me xerces from any repository it is in, but get me the latest, but I only
want release not nightly/snapshot (e.g.
http://www.krysalis.org/ruper/ant/reposync.htm). That to me, is useful.

I don't mind being alone in my views, but I ask again -- if we don't set the
bar higher than a one-way URI for download, why write a spec at all? I feel
we have the potential to win big, and I'd like the ASF Repository to be a
step forward towards these goals, not a step backward.

regards

Adam



Re: [proposal] common build version specifier - v0.1

2003-11-15 Thread Adam R. B. Jack
Tim,

I *love* your specifications, I really appreciate the clear/concise/explicit
nature of them. I only wish you'd use Wiki not EyeBrowse as your persistent
documentation tool. Wiki has versioning (so we can see older copies should
we need to refer back) and such, and allows other to make (respectful)
changes, and allows a view not cluttered throughout mail threads.

I'm game to be your cut-n-paste-wallah if you really need one, but please
(at least) refer to your proposals in the Wiki.

regards

Adam
- Original Message - 
From: Tim Anderson [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Friday, November 14, 2003 8:21 PM
Subject: [proposal] common build version specifier - v0.1


 Overview
 

 This proposal extends the URI Syntax proposal, v0.2:

http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]ms
 gNo=367

 The key aims of this proposal are to:

 . formalise version-specifier for projects which
   provide formal and interim builds;

 . provide a set of best practices for such projects; and

 . enable tools to construct a URI to unambigously locate a
   particular project version using a set of known criteria


 URI Components
 ==

 An absolute repository URI is written as follows:

   repository-uri = access-specifier / product-specifier /
version-specifier / artifact-specifier

 This proposal defines version-specifier as follows:

   version-specifier = build
   build = formal-build | interim-build
   formal-build = [formal-build-designation /] version
   interim-build = interim-build-designation / version
   [ / interim-version ]
   interim-version = latest | MMDD [- HHMM [SS]]
   formal-build-designation = release | ...
   interim-build-designation = interim | nightly | snapshot | ...
   version = latest | *pchar

   (pchar is per http://www.ietf.org/rfc/rfc2396.txt)

 Build
 -
   Builds are separated into formal and interim builds.

   A formal build may be a final or milestone release. e.g:
 1.0, release/1.0, 1.0-beta1, release/1.0-rc1

   An interim build is an informal release, produced by
   a nightly build or an ad-hoc snapshot. e.g:
 nightly/1.0/20031113, snapshot/1.2beta1.

 Version
 ---
   Version is either latest or arbitrary, determined by the
   project or deployment tool.
   latest always refers to the latest version of a particular
   build, and may be supported using symbolic links, or via http
   redirection.

 E.g:
   http://repo.apache.org/apache/commons-cli/release/l.0/...
   http://repo.apache.org/apache/commons-cli/release/l.1/...
   http://repo.apache.org/apache/commons-cli/release/latest/...
 - symlink to ../1.1

 Interim version
 ---
   The interim version is either a timestamp, or latest.
   latest always refers to the latest interim version and
   may be supported using symbolic links, or via http
   redirection.

   http://repo.apache.org/apache/commons-cli/nightly/1.0/20031112/...
   http://repo.apache.org/apache/commons-cli/nightly/1.0/20031113/...
   http://repo.apache.org/apache/commons-cli/nightly/1.0/latest/...
 - symlink to ../20031113

 Rationale
 =

 Optional build designation for formal builds
 

 formal-build is defined as:
   formal-build = [formal-build-designation /] version
   formal-build-designation = release | ...

 The formal-build-designation is optional for those projects
 which don't produce interim builds, or don't wish to add
 another directory for formal releases. E.g:

   http://repo.apache.org/apache/commons-cli/l.0/...
   http://repo.apache.org/apache/commons-cli/l.1/...


 Mandatory version in interim builds
 ---

 interim-build is defined as:

   interim-build = interim-build-designation / version
   [ / interim-version ]
   interim-version = latest | MMDD [- HHMM [SS]]

 This enables support for multiple versions of builds, if
 there are two or more concurrent development streams.
 E.g, to support nightly builds of versions 1.0 and 2.0 of commons-cli:

   http://repo.apache.org/apache/commons-cli/nightly/1.0/20031112/...
   http://repo.apache.org/apache/commons-cli/nightly/1.0/20031113/...
   http://repo.apache.org/apache/commons-cli/nightly/1.0/latest/...
 - symlink to ../20031113
   http://repo.apache.org/apache/commons-cli/nightly/2.0/20031112/...
   http://repo.apache.org/apache/commons-cli/nightly/2.0/20031113/...
   http://repo.apache.org/apache/commons-cli/nightly/2.0/latest/...
 - symlink to ../20031113


 Build designation naming conventions
 

 formal-build-designation and interim-build-designation are
 defined as:

   formal-build-designation = release | ...
   interim-build-designation = interim | nightly | snapshot | ...

 In other words, tools may use release, interim etc, but may also
 extend them to define their own.


 Tool support
 

 Tools can unambigously locate 

Parsable URI (Re: [proposal] URI Syntax - v0.2)

2003-11-15 Thread Adam R. B. Jack
Noel wrote:

  You don't have to like the tool, I'm not trying to push the
implementation

 I've never even seen the thing, and you are a priori assuming that I don't
 like it?

No Neol, I'm not that emoition, I meant it dispassionately and without
inference, maybe it just read differently. That was more 'one' doesn't have
to like it. [I know this list has (in the past) slipped into implementation
 codebase factions, and I was hoping not to encourage that.] So perhaps I
should've writen ... One doesn't have to like this tool/implementation, but
the results are valuable at layer 1.

  It allows you to query what is there, query and capture oldest
resources
  [and do a delete/clean], and download newest, etc.

 How does it know what OLDEST means?  I see that Tim is trying to add some
 more structure, so maybe he's thinking that we can restrict the URI space
so
 that a restricted notion of version assures an automatable concept of
 succession.

Ruper parses all the attributes of the resources, including the version, and
either do (pchar) string comparisons or (in versions case) structured
comparisons. Much as there are a few different flavours of a versions they
pretty much fall into a parsable pattern. Ruper (through Version) strictly
parses the string in a number of different ways (known formats) until one
matches.

Again, the most important aspect of parsing the URI is knowing what is
separated from what, that this pchar is a version, this pchar is a type (or
whatever). If values can by groked within that, great, if not, it is still

  Some find such a tool useful, I'd like to believe that apache users
 (admins
  and external users) would find it useful.

 I don't disagree.  I simply said that if you view the repository solution
as
 a layer of specifications, the lowest layer can be a syntax that does not
 require semantics such as an automatable concept of succession.  If we
need
 that, we can add it either by a convention within the URI space, or by
other
 means.

We all agree to layers, but I am testing what are the minimum things we'll
accept for layter one. I beleive that the repository needs to be 'tooling
readable', hence the URI needs to be parse, the other aspects (can an
attributed be fully groked) can come later.

Again, I need to get to the wiki to put a proposal and pros/cons, I'll try
next week.

 Absolutely.  But that may require something more than the URI schema.  :-)

But if it doesn't have to, should it? I'm trying to determine what we
ought will accept at the lowest level. I think clean up is important, I
like the other aspects. I agree that much should be done via metadata (e.g.
dependencies) however writting potentially shared/conflicting files to a
repository is a scary step, and I'd like to see how much we can do with
atomic artefacts.

  I feel we have the potential to win big, and I'd like the ASF
  Repository to be a step forward towards these goals, not a step
backward.

 I agree.  But one layer at a time.  :-)

Yes, and we are doing layer one -- without metadata, we still need to
determine our minimum expectations. If URI is this contentious/involved, I
could see metadata as being a long drawn out process  one we don't agree on
as a whole. Maybe this first layer is the hardest, but I'd like it to be the
one giving the most rewards so we aren't all sitting waiting for metadata.

regards,

Adam



Tooling (was Version Specifier in Re: [proposal] URI Syntax - v0.2)

2003-11-14 Thread Adam R. B. Jack

 Its great idea to make Artifact Specifier to be opaque to give way to
 different languages, but I am not sure about the Version Specifier.
Version
 Specifier can be considered as language independent and allowing different
 best practices in there would make the repository unordered and could
 confuse the users.

I know of opinions on both sides. Some say we can't dictate, so best
practices are the best we can expect  even they'll be loose. Others say, we
can't achieve conformity unless we try -- and that tools can't process
totally unstructured opaque data.

I think the questions become (building upon each other):

1) Ought the URI be uniquely (unambiguously) parsable [i.e. things such as
your '-' not '/' proposal.]
2) Ought the URI be considered 'metadata' itself  structured?
3) Is the goal for the repository to be tools processable [even without
metadata]?

I'll work something up in the Wiki TODOs section and transfer any pros/cons
there.

---

One last comment on tools-based verses human-based. We are discussing
version in filename so it's version is identifiable once download from the
repository. It occurred to me that we are likely assuming a dumb client (a
human w/ browser perhaps) in that thought. Nothing is to stop tools
downloading an unversioned filename and adding -[version] to the end as it
writes it to disk.

Since we can likely assume that many humans have bad habits of not doing
verification checks of the contents of repositories that they download with
a browser, ought we actually weight our cogitations towards tooling that can
browse/select/download/verify. Note: I'm not talking implementation, nor any
tool, and I'm definitely not saying disallow the human user use case, I'm
just saying focus on tooling.

IMHO tooling (built upon certain levels of repository consistency) make the
repository@ venture more than just a re-organization of file systems, and
allow us to scale this and save a lot of wasted human effort. It seems a
critical goal to me. Thoughts?

regards

Adam



Re: URI/URL Syntax -- little nits to be aware of

2003-11-10 Thread Adam R. B. Jack
 Why do you want to parse strings which describe versions?

So one can look at a repository of artefacts and select the best for the
user automatically. Each user has a different view of best, some want
latest (nightly/snapshot), some want latest release only.

Having a repository with automated tools that require humans to understand
the contents kinda breaks the automation...

 If you want to impose on anyone how they should version their artifacts?
 There is zero % of chance for that.

No, but by being flexible to a given set of versioning schemes on can. Like
I said, we are picking up most of Maven's repository w/o imposing anything,
and it also works for other common version standards.

regards

Adam



Manage discussions to a conclusion...

2003-11-10 Thread Adam R. B. Jack
I am trying to move contentious topics to the Wiki so we can reference them
individually, and (over time) come to an agreement.

How does this layout work for folks? I have started with one discussion
topic:

http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/ToDo

If we can agree upon something like this we can mature it to allow counter
proposals, and such.

Thoughts?

regards,

Adam
--
Experience Sybase Technology...
http://www.try.sybase.com



Re: Processing Versions

2003-11-10 Thread Adam R. B. Jack
 [...] and repository
 possibly won't be limited to project hosted at ASF.

This is why we need the Wiki, the e-mail archives are too hard to comsume.
It was agreed a while ago that this is for Apache software, we aren't trying
to solve this problem for everybody else. We need to stop going back over
closed discussions to make simple progress.

regards

Adam



index.html (was Comments on URI Syntax

2003-11-10 Thread Adam R. B. Jack
   http://repo.apache.org/apache/commons-logging/1.0.3/index.html

 Clearly, this is only useful to users browsing the repository,
 and therefore makes no sense to include the version information.

On index.html, wouldn't we discourage the use of this? Wouldn't we want the
HTTP server to do a directory listing, so publishers wouldn't have to update
it every time? Also, if we are to allow/support automatic remote publishing,
not having to lock/update an index.html would be a bonus.

Parsing HTML (simple or fancy) to find links that are children is pretty
trivial, so it probably wouldn't matter (to clients who are going to have to
do this anyway) but it probably matters to publishers.

regards

Adam



Disagreements/Agreements

2003-11-10 Thread Adam R. B. Jack
 I am almost sure that with WIKI we will have much more chaos.
 Wiki it's not a perfect techonology for maitaing disussions.

 -1 for using WIKI for dissusion

I didn't mean solely, I think we need a mixture of both. I think e-mail
threads are good (when tight) but a thread might end with the passionate
folks in disagreement. Those I think we move to the Wiki for voting:

http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/ToDo

We need to record our votes, some simple pros/cons, and at a suitable point
close the issue and move it to /Decisions.

 +1 for using WIKI for writing down the things which were agreed.

We need this most certainly:

http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/Decisions

I am scouring the mails to this list to look for things I believe are agreed
upon decisions. I'll most the non-controversial ones here. [If I make a
mistake we can complete discussions on those aspects.]

regards

Adam



Re: URI Syntax was: Repository

2003-10-31 Thread Adam R. B. Jack
 Some artifacts don't like having the full version number.
 dll for example.   I think the DLL name needs to be stable and thus
 would not have the full version info.
 For the dll example we can mandate that it has to be put in a versioned
 zip/tar.gzip

If we continue to think 100% generically we'll never hold all the
permutations in Wiki, let alone out heads, and we'll fluster ourselves
paralysis. It is clear that Java has a set of requirements, a style, that do
not fit other languages. We can't do it all.

I feel we could/should unashamedly complete our thoughts on Java, then go
and recruit some per-language specialists to chime in on their flavour.
Maybe we'll have one repository 'class' with per language sub-classes. Let's
mature what we can agree upon before we specialize  determine what we
can't. [If we have a Java repository separate from a C++ one, so be it, but
N better than 0. Heck, separate might be easiest management anyway.]

Just my two cents...

regards,

Adam



Re: URL Syntax parts

2003-10-31 Thread Adam R. B. Jack
Things change, that is a fact that I'm just not sure we can generically
pre-empt, nor try.

Interestingly, Gump deals with a lot of the issues we are discussing here.
The main difference is that Gump purely metadata based, and lives only in
the 'now'. For changes it support aliasing.

http://gump.covalent.com/log/cvsjars.html
http://gump.covalent.com/log/bypackage.html

BTW: Gump metadata management gets incredibly stale, incredibly quickly, if
folks aren't nagged. I'm not proposing going that far w/ metadata, just
realizing the similarities in situation...

FWIIW: In Gump (and the repo it is producing) group = CVS module, not
project. That could be changed.

regards

Adam
- Original Message - 
From: Noel J. Bergman [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, October 30, 2003 5:37 PM
Subject: RE: URL Syntax parts


 I would prefer to NOT have the TLP represented in the URI if possible.
 Projects can be promoted.  The package name for James was always
 org.apache.james, and so did not change when the project was promoted.

 Point being that I'm not sure if the URI should reflect the ASF
 organization.  A project name ought to be unique across the ASF.

 --- Noel