You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Stepan Koltsov (JIRA)" <ji...@apache.org> on 2010/06/06 19:19:56 UTC

[jira] Created: (IVY-1195) feature request: retrying resolver wrapper

feature request: retrying resolver wrapper
------------------------------------------

                 Key: IVY-1195
                 URL: https://issues.apache.org/jira/browse/IVY-1195
             Project: Ivy
          Issue Type: New Feature
          Components: Core
    Affects Versions: 2.1.0
            Reporter: Stepan Koltsov


I'm requesting a retrying resolver.

*description*

Retrying resolver delegates resolution to configured child resolver. If child resolver fails, if requests child to perform a resolution again after some time.

*example*

{code}
<resolvers>
  <retry name="default" timeout="5m" start="10s" exp="1.5">
    <svn .../>
  </retry>
</resolvers>
{code}

In the example above, "default" resolver will try call SVN resolver to resolve dependencies, if SVN resolver fails, it will be called again after 10s, then after 15s, then after 27s, and so on, but not after 5 minutes after resolver start.

*motivation*

We have build server, that builds projects right after commit. Projects depend on concrete revisions of another projects, revisions are specified in ivy.xml (say, "app" depends on "lib"). Sometimes developers commit to dependent project  "app" immediately after commit to the base project "lib". And in this case there is a high chance, that base project "lib" is not yet built (so artifact is not published) at the time of dependent project "app" ivy:resolve task run. So build of dependent project "app" fails.

Retry task could resolve this situation: dependent project "app" build start will be delayed until completion of "lib" build.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (IVY-1195) feature request: retrying resolver wrapper

Posted by "Maarten Coene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-1195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12877184#action_12877184 ] 

Maarten Coene commented on IVY-1195:
------------------------------------

ok fair enough, although I'm not convinced yet this should be a standard Ivy resolver. I think the use-case is too limited for it at the moment.

But luckily, Ivy is very extensible and allows custom resolvers to be plugged in very easily.
So maybe you could try to write such a resolver yourself? And if you think others could find it useful as well, attach it to this issue or start a project on sourceforge, googlecode, ... to share this resolver with the community (like there is a similar project for an SVN resolver for instance)

> feature request: retrying resolver wrapper
> ------------------------------------------
>
>                 Key: IVY-1195
>                 URL: https://issues.apache.org/jira/browse/IVY-1195
>             Project: Ivy
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 2.1.0
>            Reporter: Stepan Koltsov
>
> I'm requesting a retrying resolver.
> *description*
> Retrying resolver delegates resolution to configured child resolver. If child resolver fails, if requests child to perform a resolution again after some time.
> *example*
> {code}
> <resolvers>
>   <retry name="default" timeout="5m" start="10s" exp="1.5">
>     <svn .../>
>   </retry>
> </resolvers>
> {code}
> In the example above, "default" resolver will try call SVN resolver to resolve dependencies, if SVN resolver fails, it will be called again after 10s, then after 15s, then after 27s, and so on, but not after 5 minutes after resolver start.
> *motivation*
> We have build server, that builds projects right after commit. Projects depend on concrete revisions of another projects, revisions are specified in ivy.xml (say, "app" depends on "lib"). Sometimes developers commit to dependent project  "app" immediately after commit to the base project "lib". And in this case there is a high chance, that base project "lib" is not yet built (so artifact is not published) at the time of dependent project "app" ivy:resolve task run. So build of dependent project "app" fails.
> Retry task could resolve this situation: dependent project "app" build start will be delayed until completion of "lib" build.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (IVY-1195) feature request: retrying resolver wrapper

Posted by "Stepan Koltsov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-1195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12877177#action_12877177 ] 

Stepan Koltsov commented on IVY-1195:
-------------------------------------

* There are tons of build servers. Some people use simple cron + shell to build projects.

* "Lib" build may not be yet scheduled, because SVN is not checked for new version (but "app" is scheduled, because it lives in another SVN repository, that is checked at different schedule)

* Buildserver may be building another version of "lib", and and this case build of "app" should not be delayed

* It build of next version if "lib" is scheduled, build of "app" should not be postponed

> feature request: retrying resolver wrapper
> ------------------------------------------
>
>                 Key: IVY-1195
>                 URL: https://issues.apache.org/jira/browse/IVY-1195
>             Project: Ivy
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 2.1.0
>            Reporter: Stepan Koltsov
>
> I'm requesting a retrying resolver.
> *description*
> Retrying resolver delegates resolution to configured child resolver. If child resolver fails, if requests child to perform a resolution again after some time.
> *example*
> {code}
> <resolvers>
>   <retry name="default" timeout="5m" start="10s" exp="1.5">
>     <svn .../>
>   </retry>
> </resolvers>
> {code}
> In the example above, "default" resolver will try call SVN resolver to resolve dependencies, if SVN resolver fails, it will be called again after 10s, then after 15s, then after 27s, and so on, but not after 5 minutes after resolver start.
> *motivation*
> We have build server, that builds projects right after commit. Projects depend on concrete revisions of another projects, revisions are specified in ivy.xml (say, "app" depends on "lib"). Sometimes developers commit to dependent project  "app" immediately after commit to the base project "lib". And in this case there is a high chance, that base project "lib" is not yet built (so artifact is not published) at the time of dependent project "app" ivy:resolve task run. So build of dependent project "app" fails.
> Retry task could resolve this situation: dependent project "app" build start will be delayed until completion of "lib" build.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (IVY-1195) feature request: retrying resolver wrapper

Posted by "Maarten Coene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-1195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12877174#action_12877174 ] 

Maarten Coene commented on IVY-1195:
------------------------------------

I think this should be a feature of your buildserver that should not start building "app" if "lib" is currently being build (or queued for building).

> feature request: retrying resolver wrapper
> ------------------------------------------
>
>                 Key: IVY-1195
>                 URL: https://issues.apache.org/jira/browse/IVY-1195
>             Project: Ivy
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 2.1.0
>            Reporter: Stepan Koltsov
>
> I'm requesting a retrying resolver.
> *description*
> Retrying resolver delegates resolution to configured child resolver. If child resolver fails, if requests child to perform a resolution again after some time.
> *example*
> {code}
> <resolvers>
>   <retry name="default" timeout="5m" start="10s" exp="1.5">
>     <svn .../>
>   </retry>
> </resolvers>
> {code}
> In the example above, "default" resolver will try call SVN resolver to resolve dependencies, if SVN resolver fails, it will be called again after 10s, then after 15s, then after 27s, and so on, but not after 5 minutes after resolver start.
> *motivation*
> We have build server, that builds projects right after commit. Projects depend on concrete revisions of another projects, revisions are specified in ivy.xml (say, "app" depends on "lib"). Sometimes developers commit to dependent project  "app" immediately after commit to the base project "lib". And in this case there is a high chance, that base project "lib" is not yet built (so artifact is not published) at the time of dependent project "app" ivy:resolve task run. So build of dependent project "app" fails.
> Retry task could resolve this situation: dependent project "app" build start will be delayed until completion of "lib" build.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (IVY-1195) feature request: retrying resolver wrapper

Posted by "Antoine Levy-Lambert (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/IVY-1195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12878164#action_12878164 ] 

Antoine Levy-Lambert commented on IVY-1195:
-------------------------------------------

I agree with Maarten that the proper ordering of the builds should be done within the buildserver process space.

The project for which I work uses a plugin for CruiseControl which builds ivy based projects in the proper order.

I guess I should contribute this to CruiseControl.

> feature request: retrying resolver wrapper
> ------------------------------------------
>
>                 Key: IVY-1195
>                 URL: https://issues.apache.org/jira/browse/IVY-1195
>             Project: Ivy
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 2.1.0
>            Reporter: Stepan Koltsov
>
> I'm requesting a retrying resolver.
> *description*
> Retrying resolver delegates resolution to configured child resolver. If child resolver fails, if requests child to perform a resolution again after some time.
> *example*
> {code}
> <resolvers>
>   <retry name="default" timeout="5m" start="10s" exp="1.5">
>     <svn .../>
>   </retry>
> </resolvers>
> {code}
> In the example above, "default" resolver will try call SVN resolver to resolve dependencies, if SVN resolver fails, it will be called again after 10s, then after 15s, then after 27s, and so on, but not after 5 minutes after resolver start.
> *motivation*
> We have build server, that builds projects right after commit. Projects depend on concrete revisions of another projects, revisions are specified in ivy.xml (say, "app" depends on "lib"). Sometimes developers commit to dependent project  "app" immediately after commit to the base project "lib". And in this case there is a high chance, that base project "lib" is not yet built (so artifact is not published) at the time of dependent project "app" ivy:resolve task run. So build of dependent project "app" fails.
> Retry task could resolve this situation: dependent project "app" build start will be delayed until completion of "lib" build.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.