[ros-users] Rosinstall files calling other rosinstall files

Daniel Stonier d.stonier at gmail.com
Sun Oct 23 06:58:13 UTC 2011


On 23 October 2011 15:09, Daniel Stonier <d.stonier at gmail.com> wrote:

>
>
> On 21 October 2011 21:11, Thibault Kruse <kruset at in.tum.de> wrote:
>
>> **
>> Hi Daniel,
>>
>> yes, current yaml ignores uri for elements of type "other".
>>
>> You can call "rosinstall . http://rnd.yujinrobot.com/ycs.rosinstall". By
>> calling this again you also get updates from
>> http://rnd.yujinrobot.com/ycs.rosinstall (only adding new locations or
>> changing urls/versions, but not removing anything).
>>
>> If ycs.rosinstall <http://rnd.yujinrobot.com/ycs.rosinstall> has elements
>> with localnames such as
>>
>> - git:
>>      local-name: ycs/foo
>>      uri: https://somewhere.com/foo.git<https://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk>
>>
>> I think you can have most of what you want already.
>>
>> You can then maintain several such rosinstall files and keep merging them
>> into your environment (by calling rosinstall .
>> http://rnd.yujinrobot.com/ycs.rosinstall", which can be in a script)
>>
>> That's maybe not exactly what you want, but close.
>>
>
> 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.
>
> 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.
>
> Else, maybe describe your workflow also.
>>
>
> 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.
>
> Daniel.
>
> cheers,
>>   Thibault
>>
>>
>>
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():

        if k == 'other':
to
        if k == 'include':

self.load_yaml(rosinstall.helpers.get_yaml_from_uri(source_uri),rosinstall_source_uri)
        elif k == 'other':

On a rosinstall file that looks like:

    - include:
        uri:
http://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk/mingw_electric.rosinstall
        local-name: ignore_this

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:

# THIS IS A FILE WHICH IS MODIFIED BY rosinstall
# IT IS UNLIKELY YOU WANT TO EDIT THIS FILE BY HAND
# IF YOU WANT TO CHANGE THE ROS ENVIRONMENT VARIABLES
# USE THE rosinstall TOOL INSTEAD.
# IF YOU CHANGE IT, USE rosinstall FOR THE CHANGES TO TAKE EFFECT
- include: {local-name: ignore_this, uri: '
http://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk/mingw_electric.rosinstall
'}
- svn: {local-name: eros, uri: '
https://code.ros.org/svn/eros/tags/diamondback'}
- svn: {local-name: ycs, uri: 'svn://
yujin.dnsdojo.com/control/ycs/tags/latest'}

Daniel.


>
>> On 10/21/2011 10:46 AM, Daniel Stonier wrote:
>>
>>
>>  Hi all,
>>
>> Pretty sure this can't be done with the current yaml so I guess it falls
>> in the area of a feature request.
>>
>>  e.g. envisioning a rosinstall file that would look something like:
>>
>>  - other:
>>     local-name: /opt/ros/electric/ros
>>
>>  - other:
>>     local-name: ycs
>>     uri: http://rnd.yujinrobot.com/ycs.rosinstall
>>
>>  - svn:
>>     local-name: win_ros
>>     uri: https://win-ros-pkg.googlecode.com/svn/stacks/win_ros/trunk
>>
>>  - git:
>>     uri: https://github.com/stonier/qt_ros.git
>>     local-name: qt_ros
>>     version: master
>>
>>  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?
>>
>>  Cheers,
>> Daniel Stonier.
>>
>>
>


-- 
Phone : +82-10-5400-3296 (010-5400-3296)
Home: http://snorriheim.dnsdojo.com/
Yujin Robot: http://www.yujinrobot.com/
Embedded Ros : http://www.ros.org/wiki/eros
Embedded Control Libraries: http://snorriheim.dnsdojo.com/redmine/wiki/ecl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20111023/70a91028/attachment-0004.html>


More information about the ros-users mailing list