ROSのPythonパッケージをリリースする

2020年11月27日

ROSのPythonパッケージをリリースする日本語記事がなかったので書いておきます。

http://wiki.ros.org/bloom/Tutorials/FirstTimeRelease

package.xmlに依存パッケージを追加する

作ったパッケージがrospy等ROS関係ではないライブラリに依存している場合はまずpackage.xmlにそのパッケージ名を追記します。<exec_depend>タグを追加します。

  <exec_depend>rosnode</exec_depend>
  <exec_depend>rospkg</exec_depend>
  <exec_depend>python-socketio</exec_depend> <-追加したライブラリ

公式ドキュメントは以下です。 http://docs.ros.org/jade/api/catkin/html/howto/format2/python_module_dependencies.html

rosdistroにパッケージ追加のPRを出す

上のドキュメントに書いてあるように、使いたいパッケージがROSにない場合はros/rosdistroに追加のPRを出します。

変更方法の公式ドキュメントは以下です。 http://docs.ros.org/independent/api/rosdep/html/contributing_rules.html

contributing.mdは読みましょう。

https://github.com/ros/rosdistro/blob/master/CONTRIBUTING.md#rosdep-rules-contributions

この人のPRを参考にした。

https://github.com/ros/rosdistro/pull/24244

ros/rosdistro#24244

1リポジトリにいろいろ固まってるからtemplate.mdも使いにくいしルールが多くてPR出しにくいしメンテナとコントリビューターの双方に結構大きな負担がかかっているような印象を受けます。

リリース準備

catkinを使ってリリース準備をします。

catkin_prepare_release
git add . && git commit -m "Run catkin_prepare_release" && git push origin HEAD
catkin_prepare_release

catkin_prepare_releaseによってpackage.xmlのバージョンが上がってこれがpushされます。

bloom-releaseでリリースする

準備が整ったらbloom-releaseコマンドでリリースします。このコマンドが入っていなければsudo apt install python-catkin-pkg python-bloomなどとすれば入ります。

bloom-release --rosdistro melodic --track melodic rowma_ros
Specified repository 'rowma_ros' is not in the distribution file located at 'https://raw.githubusercontent.com/ros/rosdistro/5baf6baeb1e3616c8d8e0dab7c33cd0eb5c9c632/melodic/distribution.yaml'

と赤字で言われますが気にせず進みます。

少しすると入力待ちになるので以下のようにリポジトリのURLを書きます。

Release repository url [press enter to abort]: https://github.com/rowma/rowma_ros.git

このまま進めていくのですが、途中で出てくるVerionのところでデフォルトの:{auto}ではなくリリースするバージョンを入力します。

2段階認証付いてる人は http://wiki.ros.org/bloom/Tutorials/GithubManualAuthorization 等を参考にoauth tokenを設定しましょう。

いくつか入力したらリリースするディストリビューションのリポジトリにPRが作成されてbloom-releaseコマンドは終了です。