<br><br><div class="gmail_quote">On 23 October 2011 15:09, Daniel Stonier <span dir="ltr"><<a href="mailto:d.stonier@gmail.com">d.stonier@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br><br><div class="gmail_quote"><div class="im">On 21 October 2011 21:11, Thibault Kruse <span dir="ltr"><<a href="mailto:kruset@in.tum.de" target="_blank">kruset@in.tum.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<u></u>

  
    
    
  
  <div bgcolor="#ffffff" text="#000000">
    Hi Daniel,<br>
    <br>
    yes, current yaml ignores uri for elements of type "other".<br>
    <br>
    You can call "rosinstall . <a href="http://rnd.yujinrobot.com/ycs.rosinstall" target="_blank">http://rnd.yujinrobot.com/ycs.rosinstall</a>".
    By calling this again you also get updates from <a href="http://rnd.yujinrobot.com/ycs.rosinstall" target="_blank">http://rnd.yujinrobot.com/ycs.rosinstall</a>
    (only adding new locations or changing urls/versions, but not
    removing anything).<br>
    <br>
    If <a href="http://rnd.yujinrobot.com/ycs.rosinstall" target="_blank">ycs.rosinstall</a>
    has elements with localnames such as <br>
    <br>
    - git: <br>
         local-name: ycs/foo<br>
         uri: <a href="https://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk" target="_blank">https://somewhere.com/foo.git</a><br>
    <br>
    I think you can have most of what you want already.<br>
    <br>
    You can then maintain several such rosinstall files and keep merging
    them into your environment (by calling rosinstall . <a href="http://rnd.yujinrobot.com/ycs.rosinstall" target="_blank">http://rnd.yujinrobot.com/ycs.rosinstall</a>",
    which can be in a script)<br>
    <br>
    That's maybe not exactly what you want, but close.<br></div></blockquote><div><br></div></div><div>It seems there are two uses for .rosinstall files - 1) as a snippet that is not useful standalone 2) as representative of a complete, standalone ros buildable source tree.</div>

<div><br></div><div>2) is convenient. I did think of using scripts to do as you say, but it's still awkward. You'd be using custom scripts + rosinstalls - two tools where one would be simpler and less to remember.  In addition, if you wanted the flexibility of letting them target the script to a location of their choice, or running it with a nobuild option (or any of rosinstall's usual arguments), you then have to repeat all the rosinstall logic inside your scripts.</div>
<div class="im">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#ffffff" text="#000000">
    Else, maybe describe your workflow also.<br></div></blockquote><div> </div></div><div>Essentially we setup a .rosinstall for each robot, or environment. Being able to include other .rosinstalls would let us track moving changes in dependant .rosinstalls (e.g. the .rosinstall generated by ros' variants) and remove alot of copy/pasting commonly used stacks now that our rosinstall scripts are getting largish.</div>

<div><br></div><font color="#888888"><div>Daniel.</div></font><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#ffffff" text="#000000">

    cheers,<br>
      Thibault<div><div></div><div><br>
    <br></div></div></div></blockquote></div></div></blockquote><div><br></div><div>I just had a quick look in the rosinstall script for v0.5.22. With only a recursive call in class Config, method load_yaml(): </div><div>
<br></div><div><div>        if k == 'other':</div></div><div>to</div><div>        if k == 'include':</div><div><div>          self.load_yaml(rosinstall.helpers.get_yaml_from_uri(source_uri),rosinstall_source_uri)</div>
<div>        elif k == 'other':</div></div><div><br></div><div>On a rosinstall file that looks like:</div><div><br></div><div><div>    - include:</div><div>        uri: <a href="http://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk/mingw_electric.rosinstall">http://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk/mingw_electric.rosinstall</a></div>
<div>        local-name: ignore_this</div></div><div><br></div><div>Installs ok, added an overlay (i.e. added a repo and reran rosinstall) and it worked also. That gets it started - it'd need a little work to get rid of the exceptions thrown without a local-name element. The only other thing that might be desirable (but it works fine as is) is to expand the resultant ${ROS_WORKSPACE}/.rosinstall file which currnetly looks like this after the initial install + 2 overlays:</div>
<div><br></div><div><div># THIS IS A FILE WHICH IS MODIFIED BY rosinstall</div><div># IT IS UNLIKELY YOU WANT TO EDIT THIS FILE BY HAND</div><div># IF YOU WANT TO CHANGE THE ROS ENVIRONMENT VARIABLES</div><div># USE THE rosinstall TOOL INSTEAD.</div>
<div># IF YOU CHANGE IT, USE rosinstall FOR THE CHANGES TO TAKE EFFECT</div><div>- include: {local-name: ignore_this, uri: '<a href="http://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk/mingw_electric.rosinstall">http://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk/mingw_electric.rosinstall</a>'}</div>
</div><div><div>- svn: {local-name: eros, uri: '<a href="https://code.ros.org/svn/eros/tags/diamondback">https://code.ros.org/svn/eros/tags/diamondback</a>'}</div><div>- svn: {local-name: ycs, uri: 'svn://<a href="http://yujin.dnsdojo.com/control/ycs/tags/latest">yujin.dnsdojo.com/control/ycs/tags/latest</a>'}</div>
</div><div><br></div><div>Daniel.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#ffffff" text="#000000"><div><div>
    <br>
    On 10/21/2011 10:46 AM, Daniel Stonier wrote:
    </div></div><blockquote type="cite"><div><div></div><div>
      <div><br>
      </div>
      Hi all,
      <div><br clear="all">
        <div>Pretty sure this can't be done with the current yaml so I
          guess it falls in the area of a feature request. </div>
        <div><br>
        </div>
        <div>e.g. envisioning a rosinstall file that would look
          something like:</div>
        <div><br>
        </div>
        <div>
          <div>- other: </div>
          <div>    local-name: /opt/ros/electric/ros</div>
          <div><br>
          </div>
          <div>- other: </div>
          <div>    local-name: ycs</div>
          <div>    uri: <a href="http://rnd.yujinrobot.com/ycs.rosinstall" target="_blank">http://rnd.yujinrobot.com/ycs.rosinstall</a></div>
          <div><br>
          </div>
          <div>- svn:</div>
          <div>    local-name: win_ros</div>
          <div>    uri: <a href="https://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk" target="_blank">https://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk</a></div>
          <div>
            <br>
          </div>
          <div>- git:</div>
          <div>    uri: <a href="https://github.com/stonier/qt_ros.git" target="_blank">https://github.com/stonier/qt_ros.git</a></div>
          <div>    local-name: qt_ros</div>
          <div>    version: master</div>
          <div><br>
          </div>
          <div>where ycs.rosinstall conveniently collects and maintains
            its own working set. This would be fairly convenient to our
            workflow, would it be a useful addition for others in
            general?</div>
        </div>
        <div><br>
        </div>
        <div>Cheers,</div>
        <div>Daniel Stonier.</div>
        <div><br>
        </div>
      </div>
      </div></div><pre><fieldset></fieldset>
</pre></blockquote></div></blockquote></div></div><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Phone : +82-10-5400-3296 (010-5400-3296)<br>Home: <a href="http://snorriheim.dnsdojo.com/" target="_blank">http://snorriheim.dnsdojo.com/</a><br><div>Yujin Robot: <a href="http://www.yujinrobot.com/" target="_blank">http://www.yujinrobot.com/</a><br>
</div><div>Embedded Ros : <a href="http://www.ros.org/wiki/eros" target="_blank">http://www.ros.org/wiki/eros</a></div>Embedded Control Libraries: <a href="http://snorriheim.dnsdojo.com/redmine/wiki/ecl" target="_blank">http://snorriheim.dnsdojo.com/redmine/wiki/ecl</a><br>