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

Re: release from a specific tag

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 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