[Documentation] [TitleIndex] [WordIndex

Overview

Even though ROS does not mandate package developers to utilize any specific version control system (VCS) (e.g. git, svn, hg, cvs, bzr), bug/issue tracker, or hosting service, as of 2012 there are now recommended guidelines for all of these things. There are several reasons for doing this:

The recommended guidelines are based around two key technologies:

Motivation

The reason for the shift to git and GitHub is driven by several reasons deriving from the bullets in the overview above.

git

ROS has standardized on git as the preferred VCS. One of the main reasons git was chosen is that it's a distributed version control (DVCS) system which tends to work better in large scale, distributed code development (in contrast to a centralized version control system (CVCS) such as Subversion or CVS). By using git, forking and merging code is a very natural feature and makes it easier to merge patches from contributors. DVCSes also allow one to work offline without needing connectivity to the central server. This is extremely handy when there is server downtime.

GitHub

One may ask why git was chosen over other distributed source control systems such as Mercurial (hg) or Bazaar (bzr). On its own, git has roughly the same (if not more) functionality as its rivals. However, one of the strongest reasons we have standardized around git (as have many others) is because of the GitHub platform.

GitHub is a hosting service for git projects. GitHub has quickly become the dominant hosting service for open source projects and is tightly coupled with git. GitHub is now the official hosting site of core ROS packages and ROS guidelines HIGHLY recommend you move your repositories there.

GitHub was chosen because it is:

GitHub Organizations

Package repositories on GitHub are organized across several GitHub organizations. These allow related packages to be grouped together.

See RecommendedRepositoryUsage/CommonGitHubOrganizations

Migration Help

See RecommendedRepositoryUsage/MigrationHelp

Repository Best Practices

The following are recommended practices with your GitHub-hosted ROS packages.

Commits and Pull Requests

roswtf: Fixed performance issue when checking package manifests.

Issue/Bug Tracking

Conclusion

Please follow the guidelines as closely as possible. This will ensure smooth integration with the ROS ecosystem at both the code and community levels.


2024-11-23 13:00