This sounds like it could be pretty difficult to manage.
How about a simpler model?

A component could specify the minimum camel core or better api in the future it needs.
For example:

camel-jms 3.0 -> camel-core 3.0
camel-jms 3.1 -> camel-core 3.0

For OSGi dependencies this would make the package imports automatically specify >= 3.0 < 4 for both camel-jms versions. So the newer camel-jms version would work with the old camel-core. So we would still release all parts of camel for all releases and still be able to mix them more freely.

Christian


Am 19.02.2013 08:16, schrieb Henryk Konsek:
Hi,

Unfortunately I won't be able to join the IRC session today as I need
to hire myself as a babysitter this evening. However I would like to
discuss some subject that come up recently [1]. One on the issues
discussed during the previous IRC session was the question whether is
it possible to release components more frequently than core.

I was wondering if we could introduce additional versioning for the
components based on the Maven version qualifiers [2] starting from
Camel 3. Qualifiers are fully supported by Maven. Versions comparison
and ranges work with qualifiers as well [3]. As far as I googled
Release Plugin can handle them correctly too (as well as
submodule-only release).

The versioning of the core would stay the same. Whenever we release
core, we release all the components as well - this doesn't change as
we want to guarantee the users that we have tested all components
against the latest core. However we could change the versioning of the
components to be qualified as follows - camel-cxf-3.0.0-CR-01 (where
CR qualifier stands for "Component Release").

What camel-cxf-3.0.0-CR-03 version would state is - this is the 3rd
version of the CXF component tested against the Camel 3.0.0 core.

This approach will require us to decouple "components" module from the
core the same was as camel-extra is. To be exact components should be
dependent on the release version of camel-core instead of SNAPSHOT.
And we should perform core release separately before the components
release.

I have never worked with qualified releases so I'm not sure if this
approach won't be the release hell, but I think we could consider this
option as Maven offers qualifiers out of the box. This may be a nice
option to reduce time needed to deliver the latest artifacts to the
end users.

What do you think?

Best regards.

[1] 
http://camel.465427.n5.nabble.com/DISCUSS-CAMEL-3-0-weekly-IRC-chat-at-02-12-2013-7-00PM-8-00PM-CET-td5727462.html
[2] 
http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-pom-syntax.html
[3] 
http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution

--
Henryk Konsek
http://henryk-konsek.blogspot.com


--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
Talend Application Integration Division http://www.talend.com

Reply via email to