You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Benoit Decherf <de...@yahoo-inc.com> on 2008/02/06 19:10:24 UTC

release from a specific tag

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: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: release from a specific tag

Posted by VUB Stefan Seidel <ss...@vub.de>.
Hi,

I have to support Benoit here, I think it is a very useful use case. We 
have never thought of going back when something fails but indirectly we 
work around it.
We too have continuum running every night, and if all goes well and the 
integration tests succeed, an application package is built containing 
all the necessary jar, war and ear files and it is deployed to a remote 
server using scp. Thus, we can always have a tested working binary 
version. But we too could not declare this as a release version, because 
we only have a binary.
A workaround would be to tag the sources every night, then check out the 
sources using the tag, then release it from there.

regards,
Stefan

Benoit Decherf 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>             
>>>>       
>>>     
>>
>>   
> 
> 

-- 
best regards,

Stefan Seidel
software developer
________________________
VUB Printmedia GmbH
Chopinstraße 4
D-04103 Leipzig
Germany
tel.    +49 (341) 9 60 50 07
fax.    +49 (341) 9 60 50 92
mail.   sseidel@vub.de
web.    www.vub.de

HRB Köln 24015
UStID DE 122 649 251
GF Dr. Achim Preuss Neudorf,
Dr. Christian Preuss Neudorf

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: release from a specific tag

Posted by Benoit Decherf <de...@yahoo-inc.com>.
Kalle Korhonen wrote:
> 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.
>   
A nightly version is like a snapshot. It have to be deleted after some 
days. It is just here to check that we are able to create valid version 
every night and that nothing is broken.  The nightly tag process is done 
by continuum in our process.
I'm agree with you that revision number in svn could solve our problem, 
but we need in all case to be able to create a release from an older 
revision number and not the trunk (And anyway we are not yet using svn :( ).

So it would be great to add 1 option to maven release:prepare 
(-DfromTag). If this option is set, maven should create a branch from 
this version, checkout this branch and execute the standard release 
process from it.

This also mean that scm:branch should be able to create a branch from an 
older tag. (I think it is not possible to do it for the moment).

And as you said, it will be great to be able to create a release from a 
specific revision number, so we wouldn't have to tag every night (for 
the day we will migrate to svn:) )

I think that I could take some time to work on this improvement if you 
accept it.

Benoit.
> Kalle
>
>
> On Feb 7, 2008 2:40 AM, Benoit Decherf <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>>>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>       
>>     
>
>   


Re: release from a specific tag

Posted by Kalle Korhonen <ka...@gmail.com>.
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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
> >>>>>> For additional commands, e-mail: users-help@maven.apache.org
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>
> >>
> >
> >
>
>

Re: release from a specific tag

Posted by Benoit Decherf <de...@yahoo-inc.com>.
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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>       
>>     
>
>   


Re: release from a specific tag

Posted by Kalle Korhonen <ka...@gmail.com>.
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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
> >>>> For additional commands, e-mail: users-help@maven.apache.org
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>
> >
> >
>
>

Re: release from a specific tag

Posted by Benoit Decherf <de...@yahoo-inc.com>.
VUB Stefan Seidel wrote:
> Benoit Decherf wrote:
>> Paul Gier wrote:
>>> Sorry, I was thinking you were using svn.  Maybe you should convert ;)
>>> Yes, when I said the code is the same, I meant your project code 
>>> minus the changes to the pom.
>>>
>>> So maybe you would need to do something like
>>> 1. checkout the tag
>>> 2. make a branch
>>> 3. check the code from the tag into the branch
>>> 4. make the changes to the pom.
>>>
>>> Then run your maven release.  I agree this is not a very nice process.
>
> Why so complicated?
> 1. checkout the tag
> 2. run maven release
> That will do. The release will package the files you've just checked 
> out into the release and will tag these versions as the release version.
The release plugin change the SNAPSHOTS versions to official ones and 
commit the modificated pom. So it has to be executed on a branch not on 
a tag.

This process should also probably change the development version on the 
current branch(the trunk).
So the phases to execute from the release prepare:
  - create branch and checkout it (only if the from tag is available)
  - scm-check-modifications (not needed if the from tag is available)
  - check-pom (in the checkout version)
  - check-dependency-snapshots (in the checkout version)
  - create-backup-poms (in the checkout version)
  - map-release-versions (in the checkout version)
  - input-variables (in the checkout version)
  - map-development-versions (in the checkout version)
  - rewrite-poms-for-release (in the checkout version)
  - generate-release-poms (in the checkout version)
  - run-preparation-goals (in the checkout version)
  - scm-commit-release (in the checkout version)
  - scm-tag (in the checkout version)
  - rewrite-poms-for-development This should be done in the current 
branch, not the created one.
  - scm-commit-development. This should be done in the current branch, 
not the created one.

The perform phases are not changed and are executed from the checkout 
branch.

Are you agree with it ?

Benoit

Re: release from a specific tag

Posted by VUB Stefan Seidel <ss...@vub.de>.
Benoit Decherf wrote:
> Paul Gier wrote:
>> Sorry, I was thinking you were using svn.  Maybe you should convert ;)
>> Yes, when I said the code is the same, I meant your project code minus 
>> the changes to the pom.
>>
>> So maybe you would need to do something like
>> 1. checkout the tag
>> 2. make a branch
>> 3. check the code from the tag into the branch
>> 4. make the changes to the pom.
>>
>> Then run your maven release.  I agree this is not a very nice process.

Why so complicated?
1. checkout the tag
2. run maven release
That will do. The release will package the files you've just checked out 
into the release and will tag these versions as the release version.

Stefan

-- 
best regards,

Stefan Seidel
software developer
________________________
VUB Printmedia GmbH
Chopinstraße 4
D-04103 Leipzig
Germany
tel.    +49 (341) 9 60 50 07
fax.    +49 (341) 9 60 50 92
mail.   sseidel@vub.de
web.    www.vub.de

HRB Köln 24015
UStID DE 122 649 251
GF Dr. Achim Preuss Neudorf,
Dr. Christian Preuss Neudorf

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: release from a specific tag

Posted by Benoit Decherf <de...@yahoo-inc.com>.
Paul Gier wrote:
> Sorry, I was thinking you were using svn.  Maybe you should convert ;)
> Yes, when I said the code is the same, I meant your project code minus 
> the changes to the pom.
>
> So maybe you would need to do something like
> 1. checkout the tag
> 2. make a branch
> 3. check the code from the tag into the branch
> 4. make the changes to the pom.
>
> Then run your maven release.  I agree this is not a very nice process.
I think that it is cleaner: You know exactly what there is in the 
version. In the actual process, you have a risk that a developper commit 
somethink that shouldn't be included in the release.
I think that the release plugin should include this process. I'd like to 
have the opinion of the maven-release-plugin team before to start 
working on this dev ?

Benoit
>
> Benoit Decherf wrote:
>> A tag is a fixed version, not a branch. So I can't make a 
>> release:prepare on a tag. This can probably be done in svn because 
>> there is no real difference between a tag and a branch, but that's 
>> not true in cvs.
>>
>> The "nightly x/x/x" and the "release x/x/x" are not the same code. 
>> The pom of a release has no SNAPSHOTs dependencies.
>>
>>
>>
>> Paul Gier wrote:
>>> I would think checking out from the tag, and then running 
>>> release:prepare from that would work fine for you in this case.  It 
>>> will create another tag, but that shouldn't be a problem, since you 
>>> probably want to keep one tag "nightly x/x/x" and then another tag 
>>> "release x.x.x" even though they have basically the same code.  
>>> There's nothing in the release plugin, as far as I know, that says 
>>> you have to be working from trunk.
>>>
>>>
>>> Benoit Decherf 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>>>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>         
>>>>>>>       
>>>>>>     
>>>>>
>>>>>   
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: release from a specific tag

Posted by Benoit Decherf <de...@yahoo-inc.com>.
Paul Gier wrote:
> Sorry, I was thinking you were using svn.  Maybe you should convert ;)
> Yes, when I said the code is the same, I meant your project code minus 
> the changes to the pom.
>
> So maybe you would need to do something like
> 1. checkout the tag
> 2. make a branch
> 3. check the code from the tag into the branch
> 4. make the changes to the pom.
>
> Then run your maven release.  I agree this is not a very nice process.
I think that it is cleaner: You know exactly what there is in the 
version. In the actual process, you have a risk that a developper commit 
somethink that shouldn't be included in the release.
I think that the release plugin should include this process. I'd like to 
have the opinion of the maven-release-plugin team before to start 
working on this dev ?

Benoit
>
> Benoit Decherf wrote:
>> A tag is a fixed version, not a branch. So I can't make a 
>> release:prepare on a tag. This can probably be done in svn because 
>> there is no real difference between a tag and a branch, but that's 
>> not true in cvs.
>>
>> The "nightly x/x/x" and the "release x/x/x" are not the same code. 
>> The pom of a release has no SNAPSHOTs dependencies.
>>
>>
>>
>> Paul Gier wrote:
>>> I would think checking out from the tag, and then running 
>>> release:prepare from that would work fine for you in this case.  It 
>>> will create another tag, but that shouldn't be a problem, since you 
>>> probably want to keep one tag "nightly x/x/x" and then another tag 
>>> "release x.x.x" even though they have basically the same code.  
>>> There's nothing in the release plugin, as far as I know, that says 
>>> you have to be working from trunk.
>>>
>>>
>>> Benoit Decherf 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>>>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>         
>>>>>>>       
>>>>>>     
>>>>>
>>>>>   
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: release from a specific tag

Posted by Paul Gier <pg...@redhat.com>.
Sorry, I was thinking you were using svn.  Maybe you should convert ;)
Yes, when I said the code is the same, I meant your project code minus the 
changes to the pom.

So maybe you would need to do something like
1. checkout the tag
2. make a branch
3. check the code from the tag into the branch
4. make the changes to the pom.

Then run your maven release.  I agree this is not a very nice process.

Benoit Decherf wrote:
> A tag is a fixed version, not a branch. So I can't make a 
> release:prepare on a tag. This can probably be done in svn because there 
> is no real difference between a tag and a branch, but that's not true in 
> cvs.
> 
> The "nightly x/x/x" and the "release x/x/x" are not the same code. The 
> pom of a release has no SNAPSHOTs dependencies.
> 
> 
> 
> Paul Gier wrote:
>> I would think checking out from the tag, and then running 
>> release:prepare from that would work fine for you in this case.  It 
>> will create another tag, but that shouldn't be a problem, since you 
>> probably want to keep one tag "nightly x/x/x" and then another tag 
>> "release x.x.x" even though they have basically the same code.  
>> There's nothing in the release plugin, as far as I know, that says you 
>> have to be working from trunk.
>>
>>
>> Benoit Decherf 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>         
>>>>>>       
>>>>>     
>>>>
>>>>   
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: release from a specific tag

Posted by Benoit Decherf <de...@yahoo-inc.com>.
A tag is a fixed version, not a branch. So I can't make a 
release:prepare on a tag. This can probably be done in svn because there 
is no real difference between a tag and a branch, but that's not true in 
cvs.

The "nightly x/x/x" and the "release x/x/x" are not the same code. The 
pom of a release has no SNAPSHOTs dependencies.



Paul Gier wrote:
> I would think checking out from the tag, and then running 
> release:prepare from that would work fine for you in this case.  It 
> will create another tag, but that shouldn't be a problem, since you 
> probably want to keep one tag "nightly x/x/x" and then another tag 
> "release x.x.x" even though they have basically the same code.  
> There's nothing in the release plugin, as far as I know, that says you 
> have to be working from trunk.
>
>
> Benoit Decherf 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>>         
>>>>>       
>>>>     
>>>
>>>   
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: release from a specific tag

Posted by Paul Gier <pg...@redhat.com>.
I would think checking out from the tag, and then running release:prepare from 
that would work fine for you in this case.  It will create another tag, but that 
shouldn't be a problem, since you probably want to keep one tag "nightly x/x/x" 
and then another tag "release x.x.x" even though they have basically the same 
code.  There's nothing in the release plugin, as far as I know, that says you 
have to be working from trunk.


Benoit Decherf 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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>
>>>>>
>>>>>
>>>>>         
>>>>       
>>>     
>>
>>   
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: release from a specific tag

Posted by Benoit Decherf <de...@yahoo-inc.com>.
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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>
>>>>
>>>>
>>>>         
>>>       
>>     
>
>   


Re: release from a specific tag

Posted by Kalle Korhonen <ka...@gmail.com>.
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 <de...@yahoo-inc.com> 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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
> >> For additional commands, e-mail: users-help@maven.apache.org
> >>
> >>
> >>
> >
> >
>
>

Re: release from a specific tag

Posted by Benoit Decherf <de...@yahoo-inc.com>.
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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>>     
>
>   


Re: release from a specific tag

Posted by Nicole Lacoste <ni...@gmail.com>.
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 <de...@yahoo-inc.com> 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: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>