ros / rosdistro

This repo maintains a lists of repositories for each ROS distribution
Other
931 stars 2.56k forks source link

setup genrosinstall to give the wet part of a dry variant target #222

Closed tfoote closed 11 years ago

tfoote commented 11 years ago

So you don't manually have to compute the other part.

eitanme commented 11 years ago

I've done this now. Examples:

Raw: http://packages.ros.org/web/rosinstall/generate/raw/groovy/desktop-full For Humans: http://packages.ros.org/web/rosinstall/generate/groovy/desktop-full

Let me know if you run into any issues. If you test it, and it works, feel free to close the ticket.

tfoote commented 11 years ago

@wjwwood Can you try integrating this?

wjwwood commented 11 years ago

@eitanme I am giving the new rosinstall generators a whirl.

One thing I did when I made the list manually was to use the tarballs from github rather than from git directly. This is much faster and prevents having multiple copies of the same repository checked out to different tags.

Is it possible to get this added as an option to the generator. You have all the information you need and they are all on github (because they are the gbp's).

This rule:

- git: {local-name: catkin, uri: 'git://github.com/ros-gbp/catkin-release.git', version: 'release/catkin/0.5.52'}

To something like this:

- tar: {local-name: catkin, uri: 'https://github.com/ros-gbp/catkin-release/archive/upstream/0.5.52.tar.gz', version: 'catkin-release-upstream-0.5.52'}

Where the version element in the - tar: rosinstall rule is the sub folder to extract from the tar.

You can see my hand crafted one here:

https://raw.github.com/gist/4129582/e8889c0fc3af2f95892190e0fabc2bd535208355/base.rosinstall

eitanme commented 11 years ago

@wjwwood I was under the impression that using upstream was bad in that you might have code that is not yet ROS-ified in those tars. I was also under the impression that the only way to get the code that is released (meaning all patches applied, etc.) is to check out the repository using the branch for a specific package release. Something like release/pkg_name/version. Are these assumptions wrong?

Assuming that github creates a tar file for each tag (I think it does)... I can move to something like

- tar: {local-name: catkin, uri: 'https://github.com/ros-gbp/catkin-release/archive/release/catkin/0.5.52.tar.gz', version: 'catkin-release-0.5.52'}

This would avoid cloning the full repository for each package, but would still require you to check out a tar file per package rather than per repository.

However, I want to verify that this is correct before I make the switch since you're using "upstream" in the example file you pointed to... which I think might be wrong.

Also, @tfoote, what does the "version" tag do for "tar" targets in rosinstall? I tried to look it up, but don't even see "tar" listed as a valid target here: http://www.ros.org/doc/api/rosinstall/html/rosinstall_file_format.html

wjwwood commented 11 years ago

You are right we should not use upstream, in my example I was just too rushed/lazy to do one for each package, plus I know there were no patched between upstream and release for those core packages.

Github does create tarballs for each tag using the same url api.

That example looks good, except the version part is wrong, it should be: catkin-release-release-catkin-0.5.52

"tar" isn't documented... the "version" tag is the folder in the tarball to extract from, in this case the tarball from github contains the repo in a folder called <repo>-<tag/>-<tag/>...

eitanme commented 11 years ago

Cool... got it now.

wjwwood commented 11 years ago

@tfoote told me about it and I picked it up from examples, I don't know that it is documented.

eitanme commented 11 years ago

Yeah, I misread "isn't" as "is" in your comment above when I posted before. Edited my comment above to reflect once I realized, but clearly not quickly enough. @tfoote, if "tar" is an option that rosinstall will support going forward, it'd be nice to have it documented. Filing a separate ticket here: https://github.com/vcstools/rosinstall/issues/32

eitanme commented 11 years ago

I now use the tar option in the generated rosinstall files. Examples:

Human: http://packages.ros.org/web/rosinstall/generate/groovy/desktop Raw: http://packages.ros.org/web/rosinstall/generate/raw/groovy/desktop

Anything else needed with this? Or are we ready to close?

wjwwood commented 11 years ago

This one can be closed, but now we are feeling the need for Xylem...

eitanme commented 11 years ago

Um... what is Xylem?

tfoote commented 11 years ago

It's the prototype of a cleanly abstracted rosdep. Just for system dependencies.

On Tue, Nov 27, 2012 at 2:51 PM, eitanme notifications@github.com wrote:

Um... what is Xylem?

— Reply to this email directly or view it on GitHubhttps://github.com/ros/rosdistro/issues/222#issuecomment-10781353.

Tully Foote tfoote@willowgarage.com (650) 475-2827

wjwwood commented 11 years ago

I was just discussing this with @ijt and @dirk-thomas, but we didn't come to a consensus on how to solve the dependency problem, I am going to open a ticket about this on rosdistro.

wjwwood commented 11 years ago

See: #234

tkruse commented 11 years ago

Regarding tar and the version tag, the documentation is (and has been) here: http://www.ros.org/doc/api/rosinstall/html/developers_guide.html#inofficial-file-format