You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Helmut Denk <he...@gmx.de> on 2008/06/10 16:42:07 UTC

Support for Cutting A Release ?

hello ivy-users,

is there some support for manipulating ivy.xml 
during the the transition of status from integration  
to release ?

i use SNAPSHOTs and i am thinking about an easy way
to replaces rev="1.0-SNAPSHOT" by rev="latest.release".

i am also interested in informations about releasing 
a multi-project/multi-module codebase using ant+ivy+svn 
or ant+ivy+git.

have a nice time
-- 
View this message in context: http://www.nabble.com/Support-for-Cutting-A-Release---tp17757134p17757134.html
Sent from the ivy-user mailing list archive at Nabble.com.


Re: Support for Cutting A Release ?

Posted by Niklas Matthies <ml...@nmhq.net>.
On Fri 2008-06-13 at 12:19h, Shawn Castrianni wrote on ivy-user:
> I have done the following to promote the status of a published IVY
> module from one level to the next.  It works great and uses the XML
> ant task that I have found many great uses for.

Doesn't such a in-place promotion create problems with Ivy caches who
have seen the prior state?

I'd also be a bit uncomfortable without a check that the dependencies
don't at least have the promoted status as well.

-- Niklas Matthies

RE: Support for Cutting A Release ?

Posted by Shawn Castrianni <Sh...@halliburton.com>.
I have done the following to promote the status of a published IVY module from one level to the next.  It works great and uses the XML ant task that I have found many great uses for.


        <target name="promote.testing" depends="promote.testing.setup,promote" description="Promote specified build from development status to testing status"/>
        <target name="promote.testing.setup" depends="init.env">
                <property name="promote.from" value="development"/>
                <property name="promote.to" value="testing"/>
        </target>
        <target name="promote.release" depends="promote.release.setup,promote" description="Promote specified build from testing status to release status"/>
        <target name="promote.release.setup" depends="init.env">
                <property name="promote.from" value="testing"/>
                <property name="promote.to" value="release"/>
        </target>
        <target name="promote" depends="init.ivy">
                <!--Calculate env.PROMOTE_REVISION asking user, can be overridden-->
                <ac:if>
                        <not>
                                <isset property="env.PROMOTE_REVISION"/>
                        </not>
                        <ac:then>
                                <input message="${line.separator}Enter module revision to promote:" addproperty="env.PROMOTE_REVISION" defaultvalue="latest.${promote.from}"/>
                        </ac:then>
                </ac:if>
                <ivy:findrevision organisation="${ivy.organisation}" module="${ivy.module}" branch="${ivy.branch}" revision="${env.PROMOTE_REVISION}" property="promote.revision.found"/>
                <echo message="Promoting status of build: ${promote.revision.found} to status: ${promote.to}"/>
                <xt:xmltask source="${ivy.published.root}/${env.RELEASE_NAME}/${ivy.module}/${ivy.branch}/${promote.revision.found}/ivy/ivy.xml" dest="${ivy.published.root}/${env.RELEASE_NAME}/${ivy.module}/${ivy.branch}/${promote.revision.found}/ivy/ivy.xml">
                        <xt:replace path="ivy-module/info/@status" withText="${promote.to}"/>
                </xt:xmltask>
        </target>
---
Shawn Castrianni
CM Chief Architect
Landmark
Halliburton Drilling, Evaluation and Digital Solutions Building 2
2101 City West Blvd.
Houston, TX  77042
Work:  713-839-3086
Cell:  832-654-0888
Fax:  713-839-2758


-----Original Message-----
From: Xavier Hanin [mailto:xavier.hanin@gmail.com]
Sent: Friday, June 13, 2008 11:38 AM
To: ivy-user@ant.apache.org
Subject: Re: Support for Cutting A Release ?

On Tue, Jun 10, 2008 at 4:42 PM, Helmut Denk <he...@gmx.de> wrote:

>
> hello ivy-users,
>
> is there some support for manipulating ivy.xml
> during the the transition of status from integration
> to release ?

There's some kind of support, placed in the deliver task. This one is able
to replace "dynamic" revisions by static ones, based on what has been
actually resolved. But you can customize that, probably with some Java code,
for instance to implement recursive delivery (deliver all dependencies which
are not yet in release status for instance). This is something very powerful
I've implemented in a couple of build systems, it takes some time to setup
but then you get something very powerful. It might not fit exactly what you
want, but I suggest looking at the source code if you need tweaking.

Xavier


>
> i use SNAPSHOTs and i am thinking about an easy way
> to replaces rev="1.0-SNAPSHOT" by rev="latest.release".
>
> i am also interested in informations about releasing
> a multi-project/multi-module codebase using ant+ivy+svn
> or ant+ivy+git.
>
> have a nice time
> --
> View this message in context:
> http://www.nabble.com/Support-for-Cutting-A-Release---tp17757134p17757134.html
> Sent from the ivy-user mailing list archive at Nabble.com.
>
>


--
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://ant.apache.org/ivy/
http://www.xoocode.org/

----------------------------------------------------------------------
This e-mail, including any attached files, may contain confidential and privileged information for the sole use of the intended recipient.  Any review, use, distribution, or disclosure by others is strictly prohibited.  If you are not the intended recipient (or authorized to receive information for the intended recipient), please contact the sender by reply e-mail and delete all copies of this message.

Re: Support for Cutting A Release ?

Posted by Xavier Hanin <xa...@gmail.com>.
On Tue, Jun 10, 2008 at 4:42 PM, Helmut Denk <he...@gmx.de> wrote:

>
> hello ivy-users,
>
> is there some support for manipulating ivy.xml
> during the the transition of status from integration
> to release ?

There's some kind of support, placed in the deliver task. This one is able
to replace "dynamic" revisions by static ones, based on what has been
actually resolved. But you can customize that, probably with some Java code,
for instance to implement recursive delivery (deliver all dependencies which
are not yet in release status for instance). This is something very powerful
I've implemented in a couple of build systems, it takes some time to setup
but then you get something very powerful. It might not fit exactly what you
want, but I suggest looking at the source code if you need tweaking.

Xavier


>
> i use SNAPSHOTs and i am thinking about an easy way
> to replaces rev="1.0-SNAPSHOT" by rev="latest.release".
>
> i am also interested in informations about releasing
> a multi-project/multi-module codebase using ant+ivy+svn
> or ant+ivy+git.
>
> have a nice time
> --
> View this message in context:
> http://www.nabble.com/Support-for-Cutting-A-Release---tp17757134p17757134.html
> Sent from the ivy-user mailing list archive at Nabble.com.
>
>


-- 
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://ant.apache.org/ivy/
http://www.xoocode.org/