Baptiste, you are totally correct. For my case, I use one staging repo per
project ( long story), so there is a very small window of collision.

Thank you for this very good advice.

-Dan


On Sat, Feb 15, 2014 at 1:07 PM, Baptiste Mathus <bmat...@batmat.net> wrote:

> OK, so this has to be CVCS (svn and so on) specific?
> I didn't check if the release-plugin commits + push each time. If this is
> so, it should be fixed so that this cannot happen.
>
> I would say that though this is a valid technical concern, it's very
> unlikely to happen in real life.
>
> Let's take an example with a well known CI server, and specifically with
> svn:
>
> * You start a release. At the end of the release:prepare, the
> release-plugin commits the poms just before copying the path to the tags
> directory, then reverting the poms to the next snapshot development
> version.
> * Unfortunately, the CI kicks in just there, just after that commit, and
> before the trunk comes back to snapshot.
> * In Jenkins (and Hudson), there's a default delay of some seconds,
> historically to support VCS like CVS that wouldn't commit files in an
> atomic manner
> * So, Jenkins is gonna wait those seconds before actually starting the
> build. Then it asks the VCS once more if a new change occurred. So, the
> probability to encounter this issue is even lower...
>
> So, all in all, if that's the issue you're talking about. Not sure it's
> worth to worry a lot :-).
>
> Btw, if you use a repo manager with a staging area, then at worse you're
> gonna create a staging repo from the CI build in addition to your release
> build. So, in the end you won't be able to push many releases under the
> same names and your release should still be able to proceed.
>
> HTH
>
>
>
> 2014-02-15 16:51 GMT+01:00 Thomas Broyer <t.bro...@gmail.com>:
>
> > On Sat, Feb 15, 2014 at 4:18 PM, Baptiste Mathus <bmat...@batmat.net>
> > wrote:
> >
> > > Hi Dan,
> > > Not sure what you mean. You say "CI", are you taking about a specific
> > > server? If Jenkins for example, wouldn't it then be more a Jenkins user
> > ml
> > > question?
> > >
> > > And I don't see how a snapshot build could interfere with another build
> > > with a release version.
> > > Could you give details about your issue so that we can help you?
> > >
> >
> > mvn release:prepare does a first commit with the POM modified with the
> > no-SNAPSHOT version, then another commit with the POM modified with the
> > "next" SNAPSHOT version.
> > If a build is triggered for the first commit and basically does a "mvn
> > install" or, worse, a "mvn deploy", then it'll end up deploying your
> > release version, the very same that "mvn release:perform" will deploy too
> > (very same version information, not necessarily the same artifact: might
> > not deploy javadoc and sources for example, or the artifact might be
> > slightly different because you have plugins in a profile triggered only
> on,
> > or never on, release builds).
> > I think that what Dan referred to as a "CI snapshot build" is the kind of
> > build triggered by a commit (which generally builds snapshots).
> >
> >
> > >
> > > Cheers
> > > Le 15 févr. 2014 07:01, "Dan Tran" <dant...@gmail.com> a écrit :
> > >
> > > > Hello
> > > >
> > > >
> > > > It is possible that while release:prepare cutting the tag and CI for
> > > > snapshot build wakeup at the same time.  Is there a way to prevent
> > this?
> > > > like a a profile to fail the build if the version happen to be a
> > release
> > > > version.  Ie is there a way to detect this in a profile?
> > > >
> > > > I currently have to keep remind my self to turn off CI snapshot build
> > > while
> > > > release is in progress, and too many to remember.
> > > >
> > > > Advice is greatly appreciated
> > > >
> > > > -Dan
> > > >
> > >
> >
> >
> >
> > --
> > Thomas Broyer
> > /tɔ.ma.bʁwa.je/ <http://xn--nna.ma.xn--bwa-xxb.je/> <
> http://xn--nna.ma.xn--bwa-xxb.je/> <
> > http://xn--nna.ma.xn--bwa-xxb.je/>
> >
>
>
>
> --
> Baptiste <Batmat> MATHUS - http://batmat.net
> Sauvez un arbre,
> Mangez un castor !
>

Reply via email to