pluginlib/Reviews/2009-10-06_Doc_Review

Reviewer: Wim Meeussen

Instructions for doing a doc review

See DocReviewProcess for more instructions

  1. Does the documentation define the Users of your Package, i.e. for the expected usages of your Stack, which APIs will users engage with?
  2. Are all of these APIs documented?
  3. Do relevant usages have associated tutorials? (you can ignore this if a Stack-level tutorial covers the relevant usage), and are the indexed in the right places?
  4. If there are hardware dependencies of the Package, are these documented?
  5. Is it clear to an outside user what the roadmap is for the Package?
  6. Is it clear to an outside user what the stability is for the Package?
  7. Are concepts introduced by the Package well illustrated?
  8. Is the research related to the Package referenced properly? i.e. can users easily get to relevant papers?
  9. Are any mathematical formulas in the Package not covered by papers properly documented?

For each launch file in a Package

  1. Is it clear how to run that launch file?
  2. Does the launch file start up with no errors when run correctly?
  3. Do the Nodes in that launch file correctly use ROS_ERROR/ROS_WARN/ROS_INFO logging levels?

Concerns / issues

  • On the main wiki page, class names do not start with a capital:

  PLUGINLIB_REGISTER_CLASS(rectangle, rectangle_namespace::rectangle, polygon_namespace::polygon)

while I would expect:

  PLUGINLIB_REGISTER_CLASS(Rectangle, rectangle_namespace::Rectangle, polygon_namespace::Polygon)

Tully: Fixed capatalization of classes.

  • It is not always 100% clear if a name is a package/namespace/class. Why not make the names explicit:

Instead of:

pluginlib::ClassLoader<polygon> poly_loader("polygon_interface", "polygon_namespace::polygon");

make it

pluginlib::ClassLoader<PolygonClass> poly_loader("polygon_package", "polygon_namespace::PolygonClass");

E.g. a few lines lower, there is the line:

poly = poly_loader.createClassInstance("rectangle");

It is not clear if "rectangle" is the package name, the class name or even something else?

Tully: replaced polygon_interface with polygon_interface_package for clarity, and the caps on the class name for clarity.

  • The tutorials page only contains a number of dead links, no actual tutorials.

Tully: broken links removed

  • Roadmap and stability are not mentioned. Maybe just add a few lines in the manifest package description
  • The main page of the api doc refers to "pluginlib::PluginLoader". Should this be ClassLoader instead?

Tully: yes, fixed

  • Are multiple <export> elements allowed in the manifest? If not, it would be good to mention this in the "Exporting a Plugin" section on the main wiki page.

Tully: Noted in both the main page and the exports subpage.

Conclusion

Doc Reviewed

Wiki: pluginlib/Reviews/2009-10-06_Doc_Review (last edited 2009-10-06 21:16:37 by TullyFoote)