The rospkg library is being developed using the ROS REP process. It was introduced in REP 114: rospkg standalone library. Please read REP 114 to better understand the motivation and goals of the rospkg library.
Developing a new OsDetector is fairly straightforward. There are many examples in os_detect.py.
If you contribute a OsDetector, you must provide complete unit test coverage. For example, if your detector relies on parsing /etc/issue files, you must submit example /etc/issue files along with tests that parse them correctly.
Test files for os detection should be placed in test/os_detect/os_name.
If you submit a new detector, the documentation in doc/os_detect.rst must be updated as well.
Setup
pip install nose
pip install mock
rospkg uses Python nose for testing, which is a fairly simple and straightfoward test framework. You just have to write a function start with the name test and use normal assert statements for your tests.
rospkg also uses mock to create mocks for testing.
You can run the tests, including coverage, as follows:
cd rospkg
nosetests test/*.py --with-coverage --cover-package=rospkg
Sphinx is used to provide API documentation for rospkg. The documents are stored in the doc subdirectory.