[ros-users] Rosco - ros.org checkout tool

Ken Conley kwc at willowgarage.com
Wed Aug 24 02:28:02 UTC 2011


On Tue, Aug 23, 2011 at 7:15 PM, Ibrahim Awwal
<ibrahim.awwal at berkeley.edu> wrote:
> I don't really know much about the REP process and I don't think I have
> anything to say really anyway. After thinking about it some more I
> actually really like your version better, and your proposed syntax makes
> a lot of sense.

Alright, I'll try and draft up a quick REP with the proposed syntax
when I get a chance.  Thanks for your input.

> One thing though, I'm trying to run it but it keeps
> complaining about not being able to find vcstools? I easy_install'd
> vcstools and it still complains. Do I need to install the ros package
> version?

The vcstools on pypi is an experiment right now.  If you want to try
it out, you have to change the import at the top of rosco from:

"from ros import vcstools"

to

"import vcstools"

 - Ken

>
> -Ibrahim
>
> (sorry for the delayed response)
>
> On 08/18/2011 04:36 PM, Ken Conley wrote:
>> On Thu, Aug 18, 2011 at 4:23 PM, Ibrahim Awwal
>> <ibrahim.awwal at berkeley.edu>  wrote:
>>> Wow, that was an interesting coincidence. I guess I didn't really search
>>> hard to see whether something like this existed. Hadn't considered branches
>>> though, that's something to keep in mind. I think your tool is actually
>>> better than mine with that in mind, mine could be replaced with a call to
>>> yours and roslocate. I think one possible modification to your rosco to
>>> make it just as easy as mine would be to have it check if the file argument
>>> exists, and if not try running roslocate with that first argument as the
>>> package name, and then read that snippet in and process it as usual.
>> I'd rather avoid ambiguous cases as they've bitten me in the past, so how about:
>>
>> # checkout a package/stack, uses same options and roslocate
>> rosco foo --distro=unstable
>> rosco foo --distro=electric --dev
>>
>> # checkout all entries in a rosinstall file
>> rosco -r foo.rosinstall
>> rosco --rosinstall foo.rosinstall
>>
>> # pipe output from roslocate directly
>> roslocate info eigen --distro=unstable | rosco
>>
>> If you're interested, we could write a REP together and package either
>> as part of rosinstall or as a separate standalone tool.  I imagine it
>> would be a fairly short REP.  It reminds me that I have a draft for
>> the roslocate tool that I can circulate as well so that we can
>> finalize/vote on the API.
>>
>>   - Ken
>>
>>
>>> -Ibrahim
>>>
>>> On Thu, 18 Aug 2011 16:08:17 -0700, Ken Conley<kwc at willowgarage.com>
>>> wrote:
>>>> Here's a different take on a similar idea.  It would be great to
>>>> combine into one tool as I think they are coming from the same
>>>> motivation of "gimme the code".
>>>>
>>>> https://code.ros.org/lurker/message/20110713.092005.2f102738.en.html
>>>>
>>>> To summarize:
>>>>
>>>> # checkout all entries in foo.rosinstall to this directory
>>>> rosco foo.rosinstall
>>>>
>>>> # lookup snippet for eigen and check it out
>>>> roslocate info eigen --distro=unstable | rosco
>>>>
>>>> script here:
>>>>
>>>> https://kforge.ros.org/kwc/rosco/raw-file/437f02319ff3/rosco
>>>>
>>>> The main distinction is my version takes in a rosinstall fragment
>>>> either as a filename or piped output.  The piped output may not be as
>>>> straightforward as yours for people to grok.
>>>>
>>>> The main upgrade that yours would need is to deal with branches/tags
>>>> properly.  Many of the git/hg URIs require a specific branch.  Also,
>>>> you often need to distinguish between the released version of a
>>>> package vs. the development branch.
>>>>
>>>> cheers,
>>>> Ken
>>>>
>>>>
>>>>
>>>> On Thu, Aug 18, 2011 at 3:30 PM, Ibrahim Awwal
>>>> <ibrahim.awwal at berkeley.edu>  wrote:
>>>>> ... Because life's too short to spend time copying URLs off of ros.org
>>>>> wiki
>>>>> pages...
>>>>>
>>>>> So, in a bout of severe laziness I wrote a tiny bash script to
>>>>> automatically
>>>>> checkout a package/stack that's listed on ros.org. I affectionately
>>> call
>>>>> it
>>>>> rosco, short for ros checkout. You can grab it here:
>>>>> https://gist.github.com/1155414 . If someone like this already exists,
>>> I
>>>>> will feel slightly foolish, but it took me a handful of minutes to
>>> write
>>>>> so
>>>>> it's already saved me enough time to have been worth writing. It's
>>> pretty
>>>>> simple, stick it somewhere in your path (probably want to rename it to
>>>>> rosco
>>>>> and make it executable for ease of use) and then just give it the name
>>> of
>>>>> the package or stack you want to install. For example, all you need to
>>>>> do to
>>>>> check out the 3d_navigation stack (can't wait until it works btw!) is
>>>>> type
>>>>> `rosco 3d_navigation`, and it will look up the repository information
>>>>> automatically and check it out. Currently supports svn, git, and hg,
>>>>> because
>>>>> those were the three that I noticed, haven't really found any
>>> exhaustive
>>>>> list of VCS software that's used in ROS packages though, mainly due to
>>>>> lack
>>>>> of trying (although I guess I could probably script that too). Depends
>>> on
>>>>> roslocate being on your PATH (which I guess comes as part of
>>> rosinstall).
>>>>> Happy coding!
>>>>>
>>>>> --
>>>>> -Ibrahim Awwal
>>>>>
>>>>> _______________________________________________
>>>>> ros-users mailing list
>>>>> ros-users at code.ros.org
>>>>> https://code.ros.org/mailman/listinfo/ros-users
>>>>>
>>>>>
>>>> _______________________________________________
>>>> ros-users mailing list
>>>> ros-users at code.ros.org
>>>> https://code.ros.org/mailman/listinfo/ros-users
>>> --
>>> -Ibrahim Awwal
>>> _______________________________________________
>>> ros-users mailing list
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/listinfo/ros-users
>>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>



More information about the ros-users mailing list