Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D5E0F200B78 for ; Fri, 19 Aug 2016 07:39:28 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id D47F5160AB7; Fri, 19 Aug 2016 05:39:28 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id F261F160AAE for ; Fri, 19 Aug 2016 07:39:27 +0200 (CEST) Received: (qmail 46060 invoked by uid 500); 19 Aug 2016 05:39:27 -0000 Mailing-List: contact dev-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list dev@ignite.apache.org Received: (qmail 46048 invoked by uid 99); 19 Aug 2016 05:39:26 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Aug 2016 05:39:26 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 5D4061A0CE9 for ; Fri, 19 Aug 2016 05:39:26 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.179 X-Spam-Level: * X-Spam-Status: No, score=1.179 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id z6hP2pr_RPKL for ; Fri, 19 Aug 2016 05:39:24 +0000 (UTC) Received: from mail-ua0-f174.google.com (mail-ua0-f174.google.com [209.85.217.174]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with ESMTPS id 193775F5A1 for ; Fri, 19 Aug 2016 05:39:23 +0000 (UTC) Received: by mail-ua0-f174.google.com with SMTP id n59so63572845uan.2 for ; Thu, 18 Aug 2016 22:39:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=lXglc0PbLX4/42siayhUabJlTnY1agGTAqVlByl2jbk=; b=OFqtr4mH0wWEpRJU7N00wlLnbfydJ8oi9SOYE+9xxCMLIRtNdsGBVLxxMosyHeRE5l YDkFcaSeES5b1NKAGhaCibi2FT2oPtG1qZ2agR81A71HPfgabATlgZmKw8/tBMhhRenx MPmPWMQbiEY4yV6LFFXWC7xtb3KtXGbJQWjjD43zglrf70ToiNZD3uHZIVx9m6d0JSNW RjohsAvx72hChtzbJD4w5r2nyIEUpS/873g/v6MDZHiwT+Fc+xIm+fdNW9DZaZdkt8ot gP4VpxcWb8hMvPlq9pVzwydqLrezQJHGX4nPf91Bi9yzpDyeEu7W6Js1jqIK5JZXbmw/ B/MQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=lXglc0PbLX4/42siayhUabJlTnY1agGTAqVlByl2jbk=; b=SvH0XtYikQUpkGtsrNdCiprtvnAabi1lLs4BQC2XeHJofnnad6aFCrMjPYWMIpYJVU oM4cYKyUfU6CgUs7zBMGhqh6tpXBXz/6TkGiwDinKv+c4cp3c3oJJAeB1cY4i5gpfKX8 JEve3jH035hyVRbjBLisNjHLBs11ErQIj7mUHS0508VlC2ryOnaPgZlAcIwFd8I8CUXb Fz2SOvBH4xFplH4El/XPYK+h17xvaFUNX13YbYxZvFuogZImjq6QPDjIsmRX/1uvoMYb W0kxoW+yp3JdRY4od64+s8OQQWXq/i6u+ivLm+/9okFd5yv8aGvMWA57ukPrpuYhBDJC bWOQ== X-Gm-Message-State: AEkoouv52RO59fnkoqpodwAXjawO03JGsvHVDchipgi3DTggDgUzJAYF94hLKylnr5CsChg0y194jaOKQNxK0w== X-Received: by 10.159.54.171 with SMTP id p40mr3347119uap.100.1471585161649; Thu, 18 Aug 2016 22:39:21 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.126.87 with HTTP; Thu, 18 Aug 2016 22:39:01 -0700 (PDT) In-Reply-To: References: <2D2FB566-6663-43D9-8239-46B09D2F9D68@gridgain.com> From: Igor Rudyak Date: Thu, 18 Aug 2016 22:39:01 -0700 Message-ID: Subject: Re: Ignite Maven project version number To: dev@ignite.apache.org Content-Type: multipart/alternative; boundary=94eb2c03fe2ad124cf053a661eb0 archived-at: Fri, 19 Aug 2016 05:39:29 -0000 --94eb2c03fe2ad124cf053a661eb0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Ok, in case of using version & release plugins it's better just to reuse parent project version in all modules, as you previously mentioned. Thus the main question is - if there are any specific cases for using "1" as a version number in parent POM? Cause such versioning schema also doesn't allow to use version & release plugins. Igor On Thu, Aug 18, 2016 at 4:06 PM, Raul Kripalani wrote: > I disagree. It's all about using the tools for the job in the way they we= re > intended to. > > As I said, your approach does not allow us to (1) release the Ignite Pare= nt > POM, (2) use the version plugin, (3) use the release plugin. > > Moreover, your argument about copy-paste does not sustain. Because you > would **never** manually change parent versions manually. You would use t= he > versions plugin which performs a recursive batch change. > > Additionally, I am inclined to use patterns that are used widely in the O= SS > communities. I haven't found this to be the case. An n=3D1 experiment bas= ed > on the experience of a given person doesn't hold enough value for me. > Widely used patterns are the way to go. Community over individuals. > > Anyway, I am not going to pursue this topic any further, as the rest of t= he > community doesn't seem to voice in, and I am not actively involved on a > day-to-day basis enough to block a decision. > > However, I do want to register my refusal to this change just for the > annals of the Ignite community. > > Cheers. > > On 18 Aug 2016 18:56, "Igor Rudyak" wrote: > > > Well, it's all about how to minimize copy-pasting parent version to > > constantly growing amount of module POMs while switching to development > of > > new version. > > > > Following your example with: > > > > *mvn clean install -Dapp.version=3D12893123* > > > > It looks like if somebody doing such things - he is likely doing it for > > some specific purpose and not by mistake. Otherwise *${app.version}* is > not > > the only property defined in Maven project which we have problem with. > > There are tons of properties specifying particular third-party artifact= s > > versions, which we depends on. For example: > > > > 4.0.2 > > 3.5.0_1 > > > > > > Thus overriding these properties the same way using command line args, > > could produce unpredictable build or it even can fail to compile. > > > > Not sure if there are any Apache projects currently using such versioni= ng > > schema. Just found it rather useful in my own multi-module projects and > > did't have any problems with it. Thus decided to introduce it to > community. > > > > > > Igor Rudyak > > > > > > > > > > > > On Thu, Aug 18, 2016 at 5:21 AM, Raul Kripalani > wrote: > > > > > Hi Igor, > > > > > > Unfortunately the ${app.version} approach does not play well with the > > Maven > > > ecosystem. The Maven release and versions plugins don't know to go in= to > > an > > > arbitrary property to bump up the version number. > > > > > > The goal with inlining the parent version numbers is to have a solid, > > > traceable and automatable build and release process. With mvn > > versions:set > > > -DnewVersion=3D1.8.1-SNAPSHOT done from the top, the entire project t= ree > is > > > changed in one go. > > > > > > Also, you have made the build environment-dependant, which is an > > > antipattern. You are introduced a variable that one can override with= a > > JVM > > > property, e.g. mvn clean install -Dapp.version=3D12893123 and this wi= ll > > > result in a different build. > > > > > > I'm not actively contributing to Ignite these days, but some things d= o > > > catch my eyes. Particularly build-related stuff. In fact, I'm so > opposed > > to > > > this change that I quite frankly consider vetoing it! > > > > > > BTW - can you point a few other projects that use this same build > setup? > > > > > > Cheers. > > > > > > --- > > > Ra=C3=BAl Kripalani > > > linkedin.com/in/raulkripalani | evosent.com > > > > > utm_campaign=3Devosent_raul> > > > | blog: raul.io > > > > > campaign=3Devosent_raul> | > > > > > > =E2=80=8Bs > > > kype: raul.fuse > > > > > > On Thu, Aug 18, 2016 at 1:25 AM, Igor Rudyak > wrote: > > > > > > > Not sure about the original reason to fix version of parent POM. > > > > > > > > However the approach you proposed has one drawback comparing to > > > > ${app.version} approach. We again need to copy-paste new parent > version > > > > number into all module POMs when start working on the next version. > > > > > > > > Here is more details: > > > > > > > > 1) Each module POM has such reference to parent: > > > > > > > > * * > > > > * org.apache.ignite* > > > > * ignite-parent* > > > > * 1* > > > > * ../parent* > > > > * * > > > > > > > > 2) The main problem here is in ** tag, where you need to > > specify > > > > parent project version > > > > > > > > 3) Thus if you are going to change parent version number you need t= o > > > > copy-paste this number into ALL other POMs. > > > > > > > > 4) While using ${app.version} property defined in parent POM, you c= an > > > just > > > > reuse such common peace of configuration in all other POMs: > > > > > > > > ** > > > > * org.apache.ignite* > > > > * ignite-parent* > > > > * 1* > > > > * ../parent* > > > > * * > > > > > > > > * my-module* > > > > * ${app.version}* > > > > 5) Such a way, if you want switch to development of next version - > you > > > just > > > > need to change ${app.version} property in parent POM and it will be > > > > automatically "reused" by all other POMs. The benefit here is that = we > > > need > > > > to change version number only in one place. > > > > > > > > > > > > Igor Rudyak > > > > > > > > > > > > On Wed, Aug 17, 2016 at 4:13 PM, Raul Kripalani > > > wrote: > > > > > > > > > On Wed, Aug 17, 2016 at 11:14 PM, Igor Rudyak > > > wrote: > > > > > > > > > > > It's not the solution in this case, cause parent version is > always > > > "1" > > > > > > > > > > > > > > > > What's the reason we've chosen to handle the hierarchy differentl= y > to > > > > most > > > > > other projects out there? =E2=80=8BHave we considered versioning = the parent > > > POM? > > > > > Doesn't a fixed 1 imply that it never evolves? > > > > > > > > > > Releasing the parent POM would also allow folks to create Ignite > > > modules > > > > > without forking the entire project, just by referencing a parent > POM > > > that > > > > > is in Maven Central. > > > > > > > > > > Proposal: Set the project version in the parent POM and release i= t. > > All > > > > > children modules that inherit the parent will automatically inher= it > > the > > > > > project version. Then we can forgo the ${app.version} property = =E2=80=93 > > which > > > > > quite frankly appears to be a code smell. > > > > > > > > > > Cheers. > > > > > > > > > > --- > > > > > Ra=C3=BAl Kripalani > > > > > linkedin.com/in/raulkripalani | evosent.com > > > > > > > > > utm_campaign=3Devosent_raul> > > > > > | blog: raul.io > > > > > > > > > campaign=3Devosent_raul> | > > > > > skype: raul.fuse > > > > > > > > > > > > > > > --94eb2c03fe2ad124cf053a661eb0--