Wait,

You're suggesting we starting encoding VERSION NUMBERING into the artefact NAME 
now? Isn't that just as bad, if not worse than the abuse of classifiers we 
already see out there?

We have the exact same issue being discussed here, and also as mentioned by 
others use OSGi. One of the key things to think of in all these situations to 
also let your artefacts work FOR you.

1) Separate out APIs from implementations - two artefacts
2) Users depend ONLY on API - NEVER implementations - mock those 
implementations for testing, or have a third "fake/test" impl.
3) Use composite artefacts for grouping common dependencies - a POM only 
artefact with dependencies, i.e. a testing pom that deps on testng, fest-assert 
etc. etc.
4) Often its only really the packaging/distribution that really needs the range 
to be resolved so maybe we should enhance the assembly plugin, or some other 
new packaging plugin.




On 29/09/2012, at 8:21 AM, Ron Wheeler <rwhee...@artifact-software.com> wrote:

> Not acceptable. If a developer is not going to provide upward compatibility, 
> then they should change the Artifact id to be sure that no one gets hurt 
> because of the laziness or lack of thoughtfulness or just plain bad design of 
> the older version.
> Major versions are not incompatible in most libraries.
> Hibernate is a good example where the developers realized that version 3 was 
> completely different from versions.
> If they wanted to have reasonably method names without the danger of people 
> getting hurt by trying to run code written to version 2 specs against version 
> 3, they had to rename the artifacts.

Reply via email to