新しいバージョンのパッケージリリース

通常,Bloomは公開用のROSビルドファームにパッケージをリリースします.パッケージリリースのポリシーについてはbuild.ros.orgで確認してください.

前準備

このチュートリアルでは, 初めてのパッケージリリースに従って,あなた(もしくは誰か)によりすでにパッケージが一度リリースされているものと仮定します.

本当のリリースのまえに,リリース前テストを行うことを強くおすすめします.

リリース前テストについてはこのチュートリアルをご覧ください: リリース前テストの実行

上流レポジトリの準備

Changelogの更新

必須ではありませんが,推奨されます.(REP-132を参照のこと).

Changelogの生成

  • $ catkin_generate_changelog

catkin_generate_changelogを実行してCHANGELOG.rstの内容を更新します.CHANGELOG.rstを含まないパッケージのがある場合,--allオプションでそれぞれのパッケージへのコミット履歴がCHANGELOG.rstに入力されます.

Changelogの整形

Changelogの内容を確認し,整形してください.catkin_generate_changelogはコミット履歴を単に写しただけなので,Changelogの内容としてはふさわしくない場合があります.

注意: もしコミットメッセージがアンダースコア(_),たとえばメンバ変数(`name_'など)で終わっている場合,RSTがそれらをlink targetsとして扱うためにエラーとなります.エラーは以下のようなものです:

<string>:21: (ERROR/3) Unknown target name: "name".

これを修正するにはエスケープする必要があります.例えば: To fix this, you'll need to escape the variable, for example:

* fix for checking the ``name_``

コミット

## Review, Edit and Commit your changes!
変更したら,レビューし,修正し,コミットしましょう!

参考:

If you decide to have one or more CHANGELOG.rst files, running these two commands is important; Incorrectly formatted CHANGELOG.rst can cause problems with your package. Remember to explicitly commit the changes to the Changelog!!

package.xmlのバージョンの更新

package.xmlのバージョン番号を増やし,同じ番号のタグを上流レポジトリに付けなければなりません.catkin にはそのためのcatkin_prepare_releaseというツールがあります:

  • $ cd /path/to/your/upstream/repository
    $ catkin_prepare_release

このコマンドは,あなたの上流レポジトリ内のパッケージを全て探索し,changelogがあることを確認し(コミットされていない変更がないことも確認して),package.xmlの中のバージョン番号を増やし,bloomで扱えるように同じ番号のタグを付けてコミットします.パッケージリリースを間違いなく一貫性のあるものにするためには,このコマンドを使うのが一番良い方法です.

デフォルトではこのコマンドは, 0.1.1 -> 0.1.2のように,バージョン番号のうちパッチ番号を一つづつ増やしますが,--bumpオプションでマイナー番号やメジャー番号を増やすこともできます.(訳注:バージョン番号は通常,(メジャー番号).(マイナー番号).(パッチ番号)-(リリース番号)の形式になっています)

catkin_prepare_releaseを使わない場合には,package.xmlに正しいバージョン番号が記され,同じ番号のタグが上流レポジトリに付くように気をつけなければなりません.

catkinパッケージのリリース

ここからは簡単です.どのディレクトリでも良いので以下を実行します:

  • $ bloom-release foo --track kinetic --rosdistro kinetic

fooはあなたのレポジトリの名前(ROS distroファイルで使われている名前です),kineticはリリーストラックと,このパッケージをリリースするROSディストリビューションの名前で,それぞれオプションで与えられています.

このコマンドはリリースレポジトリを取得し,そのレポジトリ上でgit-bloom-release <track>を実行し,変更をリリースレポジトリにpushした後,取得したリリースレポジトリを破棄し,最後にあなたのためにプルリクエストを開きます.

これでおしまいです.

/!\ もしあなたが,誰か他の人がすでにリリースしたパッケージを横取りして,bloom-releaseを実行した場合,situation like thisにあるような状況になるかもしれません.その場合は,レポジトリへのpush権限を与えてくれるよう,パッケージのメンテナに依頼してください.

ビルドファームへの通知

もし,プルリクエストが自動で開かれなかった場合,プルリクエストを自分で開いて,新しいバージョンのパッケージがあることをビルドファームに通知する必要があります.

それぞれのROS distroファイルは,ディストリビューションごとにGitHubで管理されています.たとえばKineticだと,以下のファイルです.

https://github.com/ros/rosdistro/blob/master/kinetic/distribution.yaml

単にこのURLにアクセスして,editボタンをクリックすることで,プルリクエストを開くことができます(注意:GitHubにログインしている必要があります).ファイルを変更してから,ページ右下にある"Propose Changes"ボタンを押します.

パッケージの情報を更新するためには,リストの中のパッケージのバージョン文字列を更新します.バージョン番号と,ハイフンで区切られたリリース番号両方とも指定したバージョン文字列を入力する必要があることに注意してください.リリース番号は,同じバージョンに対して,新しいリリースを行うたびに増やします.これは,リリースの設定を変えたり,リリースレポジトリに対するパッチを当てたりした際に行われます. (訳注:要は上流のコードのバージョンがバージョン番号,それ以外の変更の場合がリリース番号)

Wiki: ja/bloom/Tutorials/ReleaseCatkinPackage (last edited 2018-01-31 03:53:32 by RyosukeTajima)