On, Feb 25, 2013 at 3:14 AM, Armin Hornung <HornungA@informatik.uni-freiburg.de> wrote:
On 2013-02-20 21:25, William Woodall wrote:
I have drafted a REP, tentatively REP-136, which is an Informational REP providing a recommendation for how to release third party packages into the ROS ecosystem. In this context a third party package is any software package which is used in the ROS ecosystem, but exists outside of the ROS ecosystem, and therefore is neither catkin based nor rosbuild based.

You can find this draft REP here:


+1

After using the previous version in bloom/catkin this new REP has some great improvements for third-party (non-catkin) packages such as OctoMap, and the explanations clear up many things.




And the pull request containing the drafting history is here:


To summarize the recommendation, third party packages should:
  • Have a package.xml
    • Which run_depend's on catkin
    • Has a <build_type> tag in the <export> section
  • Install the package.xml

This and the motivation / rationale in the REP sound like it's recommended to put the package.xml in the the upstream source repo, while the specification recommends to inject the templated version into the release-repo (putting package.xml into the upstream repo is only mentioned as alternative). This should probably be cleared up with a clear preference on one method. From the maintenance overhead, putting package.xml into the upstream source repo sounds like the best to me (if there is control of the upstream repo by the maintainer).

Putting a package.xml and install rule in the upstream repository is the preferred method, but I realize that many people do not want this or cannot put this in their upstream repository, so bloom allows for injection of these two things into the release repository.
 

Or maybe it's just not clearly worded? The specification section mentions "Inject a templated package.xml into the upstream using bloom". Here, "upstream" probably means the upstream branch in the ros-gbp release repo, whereas in other places it also refers to the upstream repository. This should be clearly differentiated, as the context may not always be clear to the uninitiated reader.

Other than that I only found a small (but potentially confusing) typo. Pull request here: https://github.com/ros-infrastructure/rep/pull/28
Is that how the process should work on GitHub?

That's how it works, I have merged your pull request into the third party rep branch (which updated my pull request) Thanks!
 

Best,
-- 
Armin Hornung
Humanoid Robots Lab, Albert-Ludwigs-Universität Freiburg
Contact: http://www.informatik.uni-freiburg.de/~hornunga



--
William Woodall
Willow Garage - Software Engineer
wwoodall@willowgarage.com