[Documentation] [TitleIndex] [WordIndex

Development Practices

Please see the ROS Developer's Guide.

Best Practices

Please see ROS Best Practices.

ROS Users Mailing List

The ros-users mailing list: ros-users@code.ros.org is the primary mailing list of the community. Subscribe here View the archives

Special Interest Groups Mailing Lists

In addition to the ros-users list, we also several SIGs which focus on specific subtopics, and help guide development efforts. Please see the SIG summary page for links to the specific ones.

IRC

#ROS on irc.oftc.net. Not an "official" channel... but it is there.

Web Client: http://irc.lc/oftc/ros/yourname (change your nickname)

Create Your Own *-ros-pkg Repository

There are hundreds of ROS repositories hosted by companies, universities, and individuals around the world. Whether you're releasing one ROS package or hundreds, feel free to start your own repository to share your code with the rest of the community.

Please see our RecommendedRepositoryUsage

Visual representation of ROS release workflow is summarized here.

Indexing Your *-ros-pkg Repository for Documentation Generation

Once you've created your own *-ros-pkg repository, you can document your stacks and packages on ROS.org. The steps to have your repository added to our indexer have changed with ROS Groovy. You'll find instructions for both Groovy and later and Fuerte and ealier below.

Groovy and later

Fuerte and earlier

Pull in changes from upstream

To pull in changes from github.com/ros/rosdistro, you need to add another remote

git remote add upstream https://github.com/ros/rosdistro.git

Now to pull changes other people have made and ROS has commited to github:

git pull upstream

Git will pull changes from upstream and automatically merge them into your current branch. This single step could won't notify you of conflicts between your local repo and upstream. You may have to identify a branch when using this: git pull upstream master

An alternative is a two step process:

git fetch upstream

git merge upstream/master

This two step process will prompt you if there are any conflicts between your local repo and upstream.

Documenting Your *-ros-pkg Repository on ROS.org

Once your repository has been indexed, overnight the documentation jobs are recreated and run.

Once the documentation job has been run you can create a wiki page for you package or stack. To create a page. Enter into the wiki the url of the page you want to create. It will say the page does not exist, select the appropriate Template from the list to create your page. We encourage you to create usage documentation, tutorials, reviews, or whatever other content you want. See the guide to writing package documentation

The following wiki pages have guidelines to help you get started with documenting on the wiki:

Some exemplars of good wiki documentation:

Sharing with Others

The ros-users mailing list is a great forum for letting others in the community know about your latest creations and updates.

Staying Up-to-Date with Current Development

If you go to the Distributions page, you will see a list of current and future ROS distribution pages. Planning notes for upcoming distributions will be on the relevant wiki page, e.g. Diamondback Planning.

You can also monitor the ROS.org news site for announcements from the community.

ROS Enhancement Proposals (REPs)

The REP process, closely modeled on Python's PEP process, allows the community to participate in the ongoing development of ROS. For more information, see the REPs page.

Contribute Patches and Close Bugs

There is a lot of open tickets in the ROS community. Ones which are looking for new owners are posted on the Handoff List page.

Repositories

To maximize community participation, we follow a federated repository model: rather than having one true place for all ROS packages, users and developers around the world are encouraged to host their own repositories of ROS packages. Each repository can be managed and licensed as desired by the respective maintainer, and the maintainer retains direct ownership and control over the code.

You can setup your own public repository or use free hosting online. To list a few:

There are a few ROS related hosting sites.

code.ros.org

The core ROS packages were originally hosted at SourceForge. When ROS traffic grew too high code.ros.org was setup to host the core ROS software. A list of projects on code.ros.org is available at: https://code.ros.org/gf/project However the use of code.ros.org is now not recommended for new projects and projects are actively being migrated off of this server.

kforge.ros.org

kforge.ros.org was setup as a replacement of code.ros.org with support for more version controls systems and other services. It is continued to be used, though for new projects GitHub is the recommended platform. For a list of projects on kforge.ros.org see: https://kforge.ros.org/projects

GitHub

We recommend using GitHub for hosting. At Willow Garage we have switched to use GitHub as our primary hosting site. The ease of collaboration using the GitHub ecosystem has proven very effective.

Organizations

There are several GitHub organizations which host many of the core ROS packages.

See RecommendedRepositoryUsage/CommonGitHubOrganizations

Participating in Software Reviews

Design and peer review documentation for ROS packages are available online. On every package or stack page, e.g. actionlib, there is a link to 'Reviews' that will show you a list of any API or documentation reviews that have occurred. These review notes generally contain design goals and motivation as well.

To participate in the reviews, you can sign up for the ros-users list here:

https://code.ros.org/mailman/listinfo/ros-users

The general process for a review is:

While meetings have generally been held in person, it is possible to have open meetings (e.g. IRC) if people express interest on the mailing list.


2013-05-18 12:17