Not particularly with Camel, Claus, but I've seen this in other contexts. There are a variety of reasons why one might run a **controlled** snapshot in production: maybe it's a proof of concept with limited exposure, maybe one has a full Continuous Delivery pipeline with Canary techniques where you only allow like 1% of the traffic to hit your snapshot (rest goes to release) in order to pre-emptively test upstream changes and detect breakages... It's not the most common scenario though, and discouraged for most customers if they don't know what they're doing, of course.
Nevertheless, we shouldn't be hindering use cases here at the community, we should focus on making Camel play nicely whether it's a snapshot or not. With the current versioning scheme, we have problems with .0 releases, and also there is ambiguity because 2.18-SNAPSHOT actually refers to 2.18.0-SNAPSHOT and not to "the latest in the 2.18.x line". What I propose is: # 1 To r ename the current version to 2.18.0-SNAPSHOT . Make all versions have major.minor.micro tokens, even if they are 0. #2 To s et up a new CI job in Jenkins to build and publish nightlies of the tips of the actively maintained release lines (2.18.x, 2.17.x, 2.16.x) to the snapshots repo under 2.18-SNAPSHOT & co. WYDT? Cheers. On 19 Aug 2016 14:32, "Claus Ibsen" <claus.ib...@gmail.com> wrote: > On Wed, Aug 17, 2016 at 4:12 PM, Raul Kripalani <r...@evosent.com> wrote: > > Hi Claus, > > > > I see your point, but the vast majority of Apache TLP projects are > > publishing SNAPSHOTs per-release, not per version line. > > > > Spark, Kafka, Zookeeper, Aries, Karaf, CXF, Maven, etc. publish > per-version > > SNAPSHOTs. I've only found AMQ, Flink and Tomcat doing it like us. > > > > The maintenance/storage problem is an infrastructure concern, not a > project > > one. I'm pretty sure that ASF Infrastructure have scaled the system for > > this. If storage were indeed a problem, there is definitely low-hanging > > fruit to deal with first, like our old snapshots from 2.0 to ~2.15, dated > > three years back! https://repository.apache.org/content/groups/ > > snapshots/org/apache/camel/camel-atom/ > > > > From the perspective of the developer, I would prefer to target a > SNAPSHOT > > for a given release rather than a vague one. I've seen customers run > Camel > > with SNAPSHOTs in production for months. If you target 2.18-SNAPSHOT, > every > > Have you talked with those customers why they are running with > SNAPSHOT in production? > How did that get in there in the first place, and why is Karaf so > "lenient"? Maybe something to take > to the Karaf team to make it "stand out" that you run SNAPSHOT bundles. > > I can see out of the box Apache Karaf has ASF snapshot repo included > out of the box (very bad imho) > > > org.ops4j.pax.url.mvn.repositories= \ > http://repo1.maven.org/maven2@id=central, \ > http://repository.springsource.com/maven/bundles/release@id= > spring.ebr.release, > \ > http://repository.springsource.com/maven/bundles/external@ > id=spring.ebr.external, > \ > http://zodiac.springsource.com/maven/bundles/release@id=gemini, \ > http://repository.apache.org/content/groups/snapshots-group@ > id=apache@snapshots@noreleases, > \ > https://oss.sonatype.org/content/repositories/snapshots@id= > sonatype.snapshots.deploy@snapshots@noreleases, > \ > https://oss.sonatype.org/content/repositories/ops4j-snapshot > s@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases, > \ > http://repository.springsource.com/maven/bundles/external@ > id=spring-ebr-repository@snapshots@noreleases > > > > > > > build can result in different dependency versions being taken throughout > > the entire lifetime of a minor release (12–18 months? have a look at the > > 2.15.x release lifespan). However, if you target 2.18.0-SNAPSHOT you know > > that you'll be using code no more recent than 2.18.0 at any given point. > > > > It gives the developer more control and scoping. > > > > Cheers. > > > > --- > > Raúl Kripalani > > linkedin.com/in/raulkripalani | evosent.com > > <http://evosent.com/?utm_source=email&utm_medium=email&utm_ > campaign=evosent_raul> > > | blog: raul.io > > <http://raul.io?utm_source=email&utm_medium=email&utm_campai > gn=evosent_raul> | > > skype: raul.fuse > > > > On Wed, Aug 17, 2016 at 8:48 AM, Claus Ibsen <claus.ib...@gmail.com> > wrote: > > > >> Hi > >> > >> I want the SNAPSHOT to stay as-is on the source code, and only do the > >> .0 on the release builds. > >> > >> Having a plethora of .0-SNAPSHOT .1-SNAPSHOT .2-SNAPSHOT is a pain to > >> work with, and having to prune/remove old versions becomes a > >> maintenance problem. > >> > >> Using -SNAPSHOT then its easy to be assure its using the latest code > >> on that branch, which is the intension of the SNAPSHOT. > >> > >> On Wed, Aug 17, 2016 at 9:35 AM, Raul Kripalani <r...@evosent.com> > wrote: > >> > Hey Claus, > >> > > >> > We can change it now via the versions:set goal. That way we'll start > >> > publishing snapshots under 2.18.0-SNAPSHOT already. > >> > > >> > We should also prune 2.18-SNAPSHOT from the ASF Snapshots repo, to > make > >> the > >> > build fail for those who might be using it. That'll make them > investigate > >> > and upgrade, rather than silently using an outdated snapshot. > >> > > >> > Cheers. > >> > > >> > On 17 Aug 2016 08:24, "Claus Ibsen" <claus.ib...@gmail.com> wrote: > >> > > >> > Hi > >> > > >> > Yeah the Camel releases has always been as currently. But I do think > >> > its better practice to have a .0 so its always 3 digits. > >> > > >> > We can maybe start this from Camel 2.18.0 onwards. > >> > > >> > I assume its "just" a matter when the RC is cut then the version > >> > number typed for the Maven command should be 2.18.0 instead of 2.18 in > >> > these situations. > >> > > >> > > >> > > >> > On Wed, Aug 17, 2016 at 1:01 AM, Raul Kripalani <r...@evosent.com> > >> wrote: > >> >> Hi all, > >> >> > >> >> I've come across an obscure bug using the karaf-maven-plugin to > package > >> a > >> >> custom Karaf distro containing Camel 2.18-SNAPSHOT. > >> >> > >> >> Karaf expects feature version numbers to match the same format as > OSGi > >> >> versions [1]. OSGi versions **require** a micro component. > >> >> > >> >> Karaf uses the Felix org.apache.felix.utils.version.VersionCleaner > [2] > >> >> which adds a 0 micro component if it doesn't exist. This magic then > >> causes > >> >> problems when other tools try to match version numbers of round > >> releases. > >> >> > >> >> I particularly find confusing that we use this non-uniform scheme for > >> >> versions, not only because it it causes side-effects, but because it > >> feels > >> >> somewhat messy. > >> >> > >> >> My proposal: always include a micro component in our release numbers, > >> >> padding with 0 for round releases (2.18 => 2.18.0). That way we would > >> > have: > >> >> > >> >> 2.17.4 > >> >> 2.18.0 > >> >> 2.18.1 > >> >> > >> >> Instead of: > >> >> > >> >> 2.17.4 > >> >> 2.18 > >> >> 2.18.1 > >> >> > >> >> Agree? > >> >> > >> >> [1] https://osgi.org/javadoc/r4v43/core/org/osgi/framework/Versi > on.html > >> >> [2] > >> >> https://github.com/apache/felix/blob/4a60744d0f88f351551e4cb4673eb6 > >> > 0b8fbd21d3/utils/src/main/java/org/apache/felix/utils/ > >> > version/VersionCleaner.java > >> >> > >> >> --- > >> >> Raúl Kripalani > >> >> linkedin.com/in/raulkripalani | evosent.com > >> >> <http://evosent.com/?utm_source=email&utm_medium=email& > >> > utm_campaign=evosent_raul> > >> >> | blog: raul.io > >> >> <http://raul.io?utm_source=email&utm_medium=email&utm_ > >> > campaign=evosent_raul> | > >> >> skype: raul.fuse > >> > > >> > > >> > > >> > -- > >> > Claus Ibsen > >> > ----------------- > >> > http://davsclaus.com @davsclaus > >> > Camel in Action 2: https://www.manning.com/ibsen2 > >> > >> > >> > >> -- > >> Claus Ibsen > >> ----------------- > >> http://davsclaus.com @davsclaus > >> Camel in Action 2: https://www.manning.com/ibsen2 > >> > > > > -- > Claus Ibsen > ----------------- > http://davsclaus.com @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 >