ROSのPythonパッケージをリリースする日本語記事がなかったので書いておきます。
http://wiki.ros.org/bloom/Tutorials/FirstTimeRelease
作ったパッケージが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
上のドキュメントに書いてあるように、使いたいパッケージが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
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
コマンドでリリースします。このコマンドが入っていなければ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コマンドは終了です。