New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
REP 136 for releasing third party packages #23
Conversation
@dirk-thomas @tfoote @mirzashah @ablasdel Can you guys review this while I work up the documentation and examples? |
@ablasdel fixed. |
I was going to leave that to the tutorials, but I can mention the process I guess. It doesn't make sense to describe where it goes unless you describe why it goes there and what happens with it. (I thought this might be out of the scope of the REP) |
That's a good pro to that approach, I'll add that. |
We also need to determine the type of the REP, I am leaning toward Informational, thoughts? |
Informational sounds right to me. |
I assigned this number 136 |
I have added new documentation: Still todo on documentation is regenerating the RST documentation and filling out the FAQ's. |
@tfoote I think the REP is ready for community review, thoughts? |
@dirk-thomas Can you vette the examples for correctness? https://github.com/ros-infrastructure/rep/blob/release_third_party/rep-0136.rst#resources |
Moved http://ros.org/wiki/bloom_0.3 -> http://ros.org/wiki/bloom The old documentation there was useless anyways. |
It's ready to email. I think that a few more definitions in the intro and motivation would be valuable for people who are not as familiar with what it means to be 3rdparty vs catkin. And why would we wrap 3rdparty libraries, and what are good candidates vs bad ones. |
This section describes the consequences of this recommendation as it relates to dependent packages finding and using third party packages.
Small typo, reworded to be more clear about upstream package.xml
There were concerns from the mailing list that the REP's scope was not clearly defined.
The clarifications look good to me. Thanks, William. |
There is still a big thing missing: the addition of a package_name.pc in the pkgconfig folder. |
@vrabaud, I talked with @tfoote and @dirk-thomas and we agree that creating a For example, if you had a rosbuild package called
And a
And we will assume that the The above is an example of the legacy way to find and use opencv in ROS. This REP encourages users to use third party packages as they were intended to by the third party package developers, not via a custom ROS mechanism. So in this case the correct thing to do is for opencv to not have a opencv2.pc file for rosbuild to find, but instead for the So in that case the
And the
All of that being said, I can put a section in the REP about backwards compatibility stating that to prevent breaking existing rosbuild packages, which previously depended on this third party package, you should ensure that rospack can get build flags about your package by ensuring that .pc is installed. |
totally agree with that decision, but the REP should at least mention what to do with Groovy: break backward compatibility and not install that *.pc file ? or do it but only for Groovy as the REP will be applied only in Hydro and above. Also, I read it quickly but it seems the REP does not mention that the third party package has to install a FindFoo.cmake and/or a proper .pc file (or both I don't know) as otherwise, they are unfindable by ROS. |
This seems like the choice of the package maintainer and not an element for
|
On Sun, Mar 3, 2013 at 4:55 PM, Vincent Rabaud notifications@github.comwrote:
|
|
||
<maintainer email="user@todo.todo">user</maintainer> | ||
<license>BSD</license> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't build_depend on catkin missing here, given our current (strange) requirement that catkin packages need to explicitly state that indeed they depend on catkin for build?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean buildtool_depend
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This package does not need catkin at build time to build because catkin is not invoked from the CMakeLists.txt
, and so the missing build*_depend
on catkin is intentional. The run_depend
on catkin is to ensure that setup.*sh
files are installed when the packages are installed from debs, otherwise you might end up with something like only opencv
in /opt/ros/groovy
without the setup.*sh
files need to add that prefix to the path's.
Specifically to address backwards compatibility with legacy rosbuild packages.
@vrabaud Can you review the Backwards Compatibility section to ensure it addresses the concerns you raised about the pkg-config files for rosbuild? |
+1 to me. Addresses all the issues I had. Works on the farm too, thx. |
Setting REP status to Active
REP 136 for releasing third party packages
Looking for comments.
Pending links to examples and tutorials for bloom.