continuum-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johan Iskandar" <Johan.Iskan...@ag-it.com>
Subject RE: Maven2 release process in Continuum
Date Wed, 18 Jul 2007 09:28:26 GMT
Hehehe, after thinking about it..

Continuum doesn't need to save state at all(cuz I already assumed at the
beginning that all pom must explicitly state it's current version, so
the parent pom should also have it's version).

BUT, I wonder whether maven encourages an explicit declaration of
version in the pom(just as the above assumption)? Please advise? Also
why does it use SNAPSHOT instead of build version..(the letter z in my
example)?

Thanks

> -----Original Message-----
> From: Johan Iskandar
> Sent: Wednesday, July 18, 2007 4:04 PM
> To: continuum-users@maven.apache.org
> Subject: RE: Maven2 release process in Continuum
> 
> I dunno how continuum does version releasing but as far as I know
about
> version releasing is that once you're happy with say build w.x.y.z You
> then: (assuming that all pom has its current version explicitly stated
> in the file, and it's formatted as p.q.r.s)
> -tag all current source &/ pom with an w.x.y tag(branch)
> -increment the w &/ x &/ y &/ z for the next build &/ bug-fix &/
> minor-release &/ major-release
> 
> The question is, whether continuum holds such counters for w, x, y and
> z(not the current version of the poms cuz it's already explicitly
> stated)? if yes where? Can we control the states in case we need some
> adjustments?
> 
> So when we trigger one of the release button(there should be 4 buttons
> to choose from build, bug-fix, minor-release, major-release) , it
should
> be obvious for continuum to just increase z if it's a build, increase
y
> and reset z if it's bug-fix, and the third and fourth should be
obvious.
> 
> For automatic builds, it would function just like triggering a build
> button, only automatically triggered by a developer committing a
source
> or by scheduler.
> Then in a separate view/form/panel you could choose from a number of
> successful builds which one to be the next bug-fix, minor-release,
> major-release). (I'd prefer a 0.0.0.0 release as the initial value of
> w.x.y.z)
> 
> Best regards,
> Johan
> Just my 2 cents
> 
> > -----Original Message-----
> > From: James Abley [mailto:james.abley@gmail.com]
> > Sent: Wednesday, July 18, 2007 2:54 PM
> > To: continuum-users@maven.apache.org
> > Subject: Re: Maven2 release process in Continuum
> >
> > On 18/07/07, Jesse McConnell <jesse.mcconnell@gmail.com> wrote:
> > > at the moment I think you need to make sure the underlying project
> > > that you are going to try and release is 'clean' for the release.
> > > that means that all dependencies that you are going to release ave
> > > been resolved into released and available artifacts.
> >
> > Continuum is pulling stuff from our SCM prior to building it; your
> > suggestion implies to me that I need to check out POMs, alter them
to
> > build a release form and check them back in. Then Continuum can be
> > used to prepare and perform a release, after which I need to
checkout
> > the POMs and change any reference versions that I altered to the new
> > SNAPSHOT versions.
> >
> > Have I understood you correctly? It just feels more painful than it
> > ought to, when trying to release 17 top-level POMs. Surely other
> > people are doing this and can point out where I'm going wrong.
> >
> > >
> > > the continuum release mechanism makes use of the same release
> > > mechanism as the maven-release-plugin so if you interested in
> playing
> > > around with it I am a fan of just using the maven-release-plugin
> > > directly, personally.
> > >
> > > in your example to release your project and the core and webapp
> > > subprojects at once,  will basically need to release the company
pom
> > > initially and then edit the project pom by hand and set the
company
> > > parent pom to the released version.  Then check through your
> pom.xml's
> > > of the project and the two subprojects to locate and resolve any
> > > SNAPSHOT dependencies that are not the three you are immediately
> > > releasing.
> > >
> > > its really pretty straight forward once you get into the swing of
> it.
> >
> > Thanks for your response,
> >
> > James
> >
> > >
> > > jesse
> > >
> > > On 7/17/07, James Abley <james.abley@gmail.com> wrote:
> > > > Hi,
> > > >
> > > > We have a Continuum instance and would like to cut a release of
a
> > > > product which uses a Maven2  as the build system. Currently, it
> takes
> > > > around a day to release a product, which feels like longer than
it
> > > > should.
> > > >
> > > > We were hoping that using Continuum would save a lot of time
> versus
> > > > the current release process, which involves mvn release:prepare
> > > > -D..... and mvn releaes:perform -D... for a lot of modules.
> > > >
> > > > I haven't found much documentation about the release feature, so
> would
> > > > appreciate any pointers.
> > > >
> > > > First time through, I just followed it to try to see how
intuitive
> it
> > was.
> > > >
> > > > Release is only available at a Project Group level (unless the
> user
> > > > account that I am using is missing some roles?). I created and
> > > > selected a small project group, that only contains a parent
module
> and
> > > > two sub-modules. The parent pom inherits from our general
> company-wide
> > > > POM (common profiles, repositories, scm, etc.) The two
sub-module
> poms
> > > > both inherit from the parent pom, for dependency management
> > > > reasons.One sub-module depends on the other one. The dependency
> flow
> > > > is illustrated below
> > > >
> > > >           Common Company POM
> > > >                          |
> > > >                         V
> > > >              Project Group POM
> > > >               |                         |
> > > >              V                        V
> > > > Core module POM        Web app module (depends on Core)
> > > >
> > > >
> > > > 1) I clicked on Release from the project group page.
> > > > 2) Select the prepare release option.
> > > > 3) Submit the form.
> > > >
> > > > org.apache.maven.shared.release.versions.VersionParseException:
> Unable
> > > > to parse the version string: "${project.parent.version}"
> > > >         at
> >
>
org.apache.maven.shared.release.versions.DefaultVersionInfo.<init>(Defau
> lt
> > VersionInfo.java:156)
> > > >         at
> >
>
org.apache.maven.continuum.web.action.ReleasePrepareAction.setProperties
> (R
> > eleasePrepareAction.java:294)
> > > >         at
> >
>
org.apache.maven.continuum.web.action.ReleasePrepareAction.processProjec
> t(
> > ReleasePrepareAction.java:273)
> > > >         at
> >
>
org.apache.maven.continuum.web.action.ReleasePrepareAction.processProjec
> t(
> > ReleasePrepareAction.java:277)
> > > >         at
> >
>
org.apache.maven.continuum.web.action.ReleasePrepareAction.input(Release
> Pr
> > epareAction.java:119)
> > > >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> > > >         at
> >
>
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:
> > 39)
> > > >         at
> >
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Im
> > pl.java:25)
> > > >         at java.lang.reflect.Method.invoke(Method.java:585)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActio
> nI
> > nvocation.java:364)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultA
> ct
> > ionInvocation.java:216)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:190)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Met
> ho
> > dFilterInterceptor.java:88)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Met
> ho
> > dFilterInterceptor.java:88)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
org.apache.maven.continuum.web.interceptor.ForceContinuumConfigurationIn
> te
> > rceptor.intercept(ForceContinuumConfigurationInterceptor.java:73)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
org.codehaus.plexus.redback.xwork.interceptor.PolicyEnforcementIntercept
> or
> > .intercept(PolicyEnforcementInterceptor.java:103)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
org.codehaus.plexus.redback.xwork.interceptor.SecureActionInterceptor.in
> te
> > rcept(SecureActionInterceptor.java:178)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
org.codehaus.plexus.xwork.interceptor.ExceptionMappingInterceptor.interc
> ep
> > t(ExceptionMappingInterceptor.java:58)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Met
> ho
> > dFilterInterceptor.java:88)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Met
> ho
> > dFilterInterceptor.java:88)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt
> er
> > ceptor.java:31)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt
> er
> > ceptor.java:31)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt
> er
> > ceptor.java:31)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(Fil
> eU
> > ploadInterceptor.java:171)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt
> er
> > ceptor.java:31)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.webwork.interceptor.debugging.DebuggingInterceptor.inte
> rc
> > ept(DebuggingInterceptor.java:147)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt
> er
> > ceptor.java:31)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterce
> pt
> > or.java:151)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt
> er
> > ceptor.java:31)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt
> er
> > ceptor.java:31)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt
> er
> > ceptor.java:31)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept
> (E
> > xceptionMappingInterceptor.java:186)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
org.codehaus.plexus.redback.xwork.interceptor.AutoLoginInterceptor.inter
> ce
> > pt(AutoLoginInterceptor.java:156)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
org.codehaus.plexus.redback.xwork.interceptor.ForceAdminUserInterceptor.
> in
> > tercept(ForceAdminUserInterceptor.java:63)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
org.codehaus.plexus.redback.xwork.interceptor.EnvironmentCheckIntercepto
> r.
> > intercept(EnvironmentCheckInterceptor.java:122)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc
> at
> > ion.java:188)
> > > >         at
> >
>
com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.jav
> a:
> > 113)
> > > >         at
> >
>
com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(Dispat
> ch
> > erUtils.java:225)
> > > >         at
> >
>
com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDisp
> at
> > cher.java:202)
> > > >         at
> >
>
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(Web
> Ap
> > plicationHandler.java:821)
> > > >         at
> >
>
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.
> ja
> > va:118)
> > > >         at
> >
>
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.j
> av
> > a:52)
> > > >         at
> >
>
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(Web
> Ap
> > plicationHandler.java:821)
> > > >         at
> >
>
com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(Action
> Co
> > ntextCleanUp.java:88)
> > > >         at
> >
>
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(Web
> Ap
> > plicationHandler.java:821)
> > > >         at
> >
>
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationH
> an
> > dler.java:471)
> > > >         at
> >
>
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
> > > >         at
> org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
> > > >         at
> >
>
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationCon
> te
> > xt.java:633)
> > > >         at
> org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
> > > >         at
> org.mortbay.http.HttpServer.service(HttpServer.java:909)
> > > >         at
> > org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
> > > >         at
> > org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
> > > >         at
> > org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
> > > >         at
> >
>
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244
> )
> > > >         at
> > org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
> > > >         at
> > org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
> > > >
> > > >
> > > > The Web App module POM contains a reference to the Core module
POM
> > like this.
> > > >
> > > > <dependency>
> > > >     <groupId>${pom.groupId}</groupId>
> > > >     <artifactId>sampleapp-core</artifactId>
> > > >     <version>${project.parent.version}</version>
> > > > </dependency>
> > > >
> > > > So my questions are these:
> > > >
> > > > 1. Do I have something wrong with the POM setup / dependencies?
It
> > > > feels like I would hav to checkout the POM and make it reference
> an
> > > > explicit version, which doesn't feel right.
> > > > 2. Is anyone else using the release button that would care to
> share
> > > > their experiences?
> > > >
> > > > Cheers,
> > > >
> > > > James
> > > >
> > >
> > >
> > > --
> > > jesse mcconnell
> > > jesse.mcconnell@gmail.com
> > >
> 
> 



Mime
View raw message