Stephen McConnell wrote:
All of the above from one command and a few clicks of a mouse. Ok, I confess - we don't have of the above in place today - but do have the majority. This benefits significantly from a rigerouse protocol supporting artefact location, feature assessment (meta data), authentication, replication and validation. An argument that appears popular on repository@ is that the basic files system does not need to be meta-aware - i.e. no distinction between artefact and info-about-an-artificat.
Please understand that artifact's meta data is simply just another artifact. Every file which lives in repository is an artifact
And we rather don't need any extra level of abstraction.
Notion of "the artifact" + "information about an artifact" is already exhausted when we will clarify the notion of artifact and define repository layout for artifacts.
You can have as many levels of metadata as you would like (meta data , metametametameta data and whatever else anybody will need).
In maven world we have
Jar is an artifact
Pom is also an artifact which provides some meta information (of course not all) about Jar. You can add as many other files to to repository as you wish.
There is clear distinction between artifact and info-about-an-artificat as they both will be different files in the repository (artifacts).
Possibly "info-about-an-artificat" could be located in few files and accessed selectivly by different tools.
Metadata about repository itself can be also kept in repository.
Even directory listings in few different flavours for different tools can be in repository.
Can you provide an explanation what exactly is not covered by such approach?
Also of relavance are the economic and social impacts. A repository not capable of supporting or evolving towards forward looking repository-enabled requirements as outlined in the above scenario is destined to be redundant within a matter of a few years. Redundant because it will not be relevant to a predominant programmatic scenarios and redundant because it will not meet basic functional requirements.
So you want us to predict what will happen in few years :)?
Again I don't understand you:
You can build any abstractions you like on the top of the repository with features that were dissussed.
Aren't you doing it even now when you use maven repository for storing information about your avalon services?