Well, maybe you have a valid use case, but I don't think there's any support
for it. How do you create a nightly tag then? Couldn't you just run
release:prepare nightly, then run integration tests on the newly created
tag, and if succeeds, perform the release, otherwise abandon the tag. I
don't see a difference between a nightly tag and an "official tag" - you
could just use minor/micro version numbers to differentiate between
"official releases" and nightlies. Alternatively, if you use svn, you should
in principle be able to use revision number for this, but I don't think
there's any way to instruct Maven to checkout specific revision for
release:prepare rather than always using the head.

Kalle


On Feb 7, 2008 2:40 AM, Benoit Decherf <[EMAIL PROTECTED]> wrote:

> I'm not sure that this it's specific to our process (If this is the
> case, we should probably change it :) ).
>
> I don't think that is possible to have always a clean trunk/branch.
> Let me explain our process:
> Each developer commit their changes on the trunk.
> Each hour, continuum check for changes and package the components(and
> execute the unit test).
> Each night project is tagged (nightly tag) and the packages are
> installed on a dev plateform and automatics tests are executed. This can
> last 3 hours.
>
> So, I agree with you that if a unit test fails, the developer have to
> clean it (This shouldn't happen because tests should be executed before
> commit). But the integration tests that last 3 hours can't be executed
> on each commit, so something can be broken for several days because of a
> regression. This also occurs at maven.
>
> Additionaly, when performing (prepare) a release, It should be great to
> be sure that the integration tests passed. So it can be useful to be
> able to prepare/perform a release from a nightly tag.
>
> Benoit
>
> Kalle Korhonen wrote:
> > Ah ok, I see what you mean, but I think it's specific to your process.
> I'd
> > assume that most projects operate so they require that the trunk/branch
> > builds cleanly, rather than releasing from a specific time
> > point/version/label. In your case, it'd mean reverting the trunk to 04
> feb,
> > then doing the release. In the meantime 05 feb would continue in branch
> or
> > with local copies only. I believe it's also common practice to require
> the
> > trunk builds to succeed. In our development process, we try not to
> prevent
> > build failures but to minimize the time the build remains in broken
> state,
> > with whatever means necessary (in some cases, reverting to previous
> state).
> >
> > Kalle
> >
> >
> > On 2/7/08, Benoit Decherf <[EMAIL PROTECTED]> wrote:
> >
> >> Image that we are working on the trunk. Every night a nightly snapshot
> >> is created and deploy on a test servers and automatic tests are run
> >> (they can last 4hours for a project).
> >> on date 04 feb. every tests passed.
> >> on date 05 feb. some tests are broken.
> >>
> >> But on 06 feb we want to make a release (to install in prod). The dev
> >> started on 05 feb are not finished, and so the nightly of 04 feb should
> >> be released.
> >> To do so, I suppose that release:prepare should be executed from the
> >> nightly tag of 4 feb to remove all snapshots dependencies, tag the
> >> release with an official tag, etc... The release prepare should create
> a
> >> branch from this tag to do it ?
> >>
> >> Benoit
> >>
> >>
> >> Kalle Korhonen wrote:
> >>
> >>> I don't understand what you are asking. release:perform doesn't do
> >>>
> >> anything
> >>
> >>> else but runs deploy (and site-deploy) on the newly created tag; after
> >>> release:prepare, the release is already cut. If you want snapshots,
> why
> >>> don't you just deploy uniquely versioned snapshots nightly?
> >>>
> >>> Kalle
> >>>
> >>>
> >>> On 2/7/08, Benoit Decherf <[EMAIL PROTECTED]> wrote:
> >>>
> >>>
> >>>> But I don't want to create an official version every night.
> >>>> In the nightly version, there still have the -SNAPSHOT versions. So I
> >>>> can't use release:perform to do it. I realy need to execute the
> >>>> release:prepare from the nightly tag.
> >>>>
> >>>> All projects here ask for this feature. I think this is a very good
> >>>> feature to be able to release an "unofficial"  version that is
> entirely
> >>>> tested.
> >>>> It seems strange that nobody has asked for this feature. All of you
> >>>> always create a version from the last commits files of the trunk
> >>>> (integration branch) ?
> >>>>
> >>>> Is it possible to make an evolution of the release plugin to support
> >>>>
> >> this
> >>
> >>>> ?
> >>>>
> >>>> Benoit
> >>>>
> >>>>
> >>>> Nicole Lacoste wrote:
> >>>>
> >>>>
> >>>>> Hi Benoit,
> >>>>>
> >>>>> Yes I think so.  Well I know you can release from a tag made with
> the
> >>>>> release prepare.  The command is
> >>>>>
> >>>>> mvn release:perform
> >>>>>
> >>>>>
> >>>> -DconnectionUrl=scm:svn:file://your-url-here/tag-name
> >>>>
> >>>>
> >>>>> Look at page 224 of better builds with maven for more details
> >>>>>
> >>>>> Nicole
> >>>>>
> >>>>> On 06/02/2008, Benoit Decherf <[EMAIL PROTECTED]> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> I think that we should be able to perform a release from an old
> >>>>>>
> >> nightly
> >>
> >>>>>> tag rather than do it always from the trunk :
> >>>>>>
> >>>>>> Every night functional tests run on a project A. On day "d"
> >>>>>>
> >> everything
> >>
> >>>>>> works, but after, I decide to add a feature and I broke the trunk.
> >>>>>>
> >> I'd
> >>
> >>>>>> like to be able to release the project in it's state of day "d"
> >>>>>>
> >> without
> >>
> >>>>>> losing the work I done. This could be useful in some cases.
> >>>>>> Is there already a way to do it ?
> >>>>>>
> >>>>>> Benoit
> >>>>>>
> >>>>>>
> ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>
> >>
> >
> >
>
>

Reply via email to