hsnuhayato / rtm-ros-robotics

Automatically exported from code.google.com/p/rtm-ros-robotics
0 stars 0 forks source link

bloomするためのスクリプトが欲しい #205

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
徐々にbloomをつかってdeb化が可能になってきています.
いまはtrunkをtagにコピーしてbloomをかけていますが,
これらの手続きを自動で行うスクリプトが欲しいです.
とくに前回作ったtagから今つくろうとしているtagまでの間��
�
どういうdiffがあったかわかると便利です.

Original issue reported on code.google.com by kei.ok...@gmail.com on 16 Sep 2013 at 3:12

GoogleCodeExporter commented 9 years ago
すみません,この件以前依頼頂いていて未だ作っていませ��
�.

ただ,あくまで ROS release ですが,こういう話があります:
http://answers.ros.org/question/76150/when-to-release-build-increment/?answer=76
162#post-id-76162
dev repository に変更があった際には,基本的に最低でも MICRO 
version を上げることになってるので,これを守れば "同じ 
tag 番号だが違う内容" という状況は起こらないはず.

ビルドを通すための期間は,いちいち MICRO 
を上げるのは気が引けたし,先方も解ってて欲しい気がし��
�すが,ビルドは通ったので,このルールを守っても良い気�
��しますが,どうでしょう.

Original comment by gm130s on 16 Sep 2013 at 3:27

GoogleCodeExporter commented 9 years ago
はい.それでいいですが,たとえばrtmros_commonというタグを�
��けようとした時に,
前につけたところからどれだけ変更があるのかを調べて,��
�れをchenge logに反映して
タグをつけて,リリースするという作業がありますね.そ��
�を支援するスクリプトがあると
いいかなと思います.

rtm-ros-robotics-tag-update rtmros_common
みたいにすると,パッケージの変更のlog一覧が見えるので��
�
それをまとめてChangeLogに書きこんで,
rtm-ros-robotics-tag-tag rtmros_common 
とするとタグのコピーをつくって,
rtm-ros-robotics-tag-release  rtmros_common
とすると,bloomでリリースする,
みたいなイメージです.

Original comment by kei.ok...@gmail.com on 17 Sep 2013 at 8:57

GoogleCodeExporter commented 9 years ago
なるほど,

    1. changelog --> 2. add tag --> 3. release by bloom 

をできるだけ自動化したいということですね.確かに.

1 の changelog は catkin_generate_changelog (と catkin_tag_changelog) 
を使いたいと思っていました.svn 
レポを未だサポートしてないのでチケットを開きました 
(がなんとなく私が patch 
を書く方向になっています.半日仕事くらい).
https://github.com/ros-infrastructure/catkin_pkg/issues/62

2 の add tag は,catkin_prepare_release 
でやってくれませんでしたっけ?いや,これはローカルで��
�ージョンを上げる (package.xml,git の tag) 
だけっぽいですね.svn 
もやってくれるようにするのはそもそもアリなのか,訊い��
�みます.OK そうであれば catkin_prepare_release 
にパッチを充てるのが理想的と思いますがどうですか?

ということで,仮に上記案で OK 
の場合,実行するコマンド的には:

    1. catkin_generate_changelog --> 2. catkin_prepare_release --> 3. bloom 

と数は減りませんがそれぞれの工程内が自動化されます.
1 と 2 
を一緒にするスクリプトがあってもいい気がしますが ROS 
側で一緒にしてないので何か理由があるのかも知れません��
�

Original comment by gm130s on 17 Sep 2013 at 9:55

GoogleCodeExporter commented 9 years ago
2. catkin_prepare_release に関し質問を開きました.
http://answers.ros.org/question/80101/to-tag-svn-project-during-ros-release-step
s-more-easily/

Original comment by gm130s on 17 Sep 2013 at 10:40

GoogleCodeExporter commented 9 years ago
はい.ROS側のツールでやってくれて,向こうに取り込んで��
�らえるならそれがベストです.
僕がいつも言っているのは,とにかくソースを手元に残さ��
�,作ったものはどこかにおいて目の前からなくなるように�
��よう,です.

Original comment by kei.ok...@gmail.com on 17 Sep 2013 at 12:34

GoogleCodeExporter commented 9 years ago
catkin_prepare_release はバージョンを increment 
してくれるツールで,(解答も付きましたが 
http://answers.ros.org/question/80101/to-tag-svn-project-during-ros-release-step
s-more-easily/?answer=80216#post-id-80216) 既に svn 
レポ自体はサポートされてました.

しかしここにあるように,trunk より深い階層を作ってる svn 
レポはサポート外...
http://answers.ros.org/question/70054/catkin_prepare_release-fails-with-svn-upst
ream/

trunk 
直下にプロジェクトを置かないのってそんなに普通じゃな��
�んでしょうか..

Original comment by gm130s on 23 Sep 2013 at 4:13

GoogleCodeExporter commented 9 years ago
いわゆる伝統的なxx-ros-pkgスタイルだとtrunkの以下にいろい��
�なディレクトリが出来ていると思うんですが,,,コアな�
��ールやシステムを作っている人は実際のユーザまでは見え
ていないから,それだと結構困る人いると思うよ,という��
�り取りを通じていい所に落ち着かせるしか無いですね.

ソース見ていないから適当ですが以下のようになるので,��
�リポジトリのルート」/tags/xxx-x.x.x 
みたいにつければいい気がするんですがね?どこでエラー��
�だしているんでしょうか.

k-okada@kokada-t430s:~/ros/groovy/rtm-ros-robotics/openrtm_common$ svn info
パス: .
URL: https://rtm-ros-robotics.googlecode.com/svn/trunk/openrtm_common
リポジトリのルート: https://rtm-ros-robotics.googlecode.com/svn

Original comment by kei.ok...@gmail.com on 23 Sep 2013 at 5:46

GoogleCodeExporter commented 9 years ago
catkin_prepare_release 
に関しては,質問してみました.https://github.com/ros/catkin/issue
s/513
# patch 
書くよ,とシタテに出ましたが出来れば書いて欲しい..��
�catkin_pkg 
等複数のパッケージに手を入れねばならなそうな気が.

> どこでエラーをだしているんでしょうか.

URL の suffix を見て trunk/tag/branch 
じゃなかったらダメ,らしいです.
http://goo.gl/PFYfIC

Original comment by gm130s on 23 Sep 2013 at 5:26

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
catkin_prepare_release 
の変更案に返信ありました.https://github.com/ros/catkin/issues/513#
issuecomment-24952765
反対ではないらしく,patch 送って ok, 
とのことなので,書きます.

> 
いわゆる伝統的なxx-ros-pkgスタイルだとtrunkの以下にいろい��
�なディレクトリが出来ていると思うんですが,,,

いま見てみましたが,確かに.少なくとも以下は trunk 
配下に package いっぱいありますね.
https://code.ros.org/svn/ros/stacks/multimaster_experimental/trunk/
https://svn.code.sf.net/p/cmu-ros-pkg/code/trunk/
https://svn.code.sf.net/p/tum-ros-pkg/code/perception/
http://alufr-ros-pkg.googlecode.com/svn/trunk

> 
コアなツールやシステムを作っている人は実際のユーザま��
�は見えていないから,

上の github のスレの人は特にそ (以下略)

Original comment by gm130s on 24 Sep 2013 at 10:24

GoogleCodeExporter commented 9 years ago
こんなのはどうでしょうか?

119以下は最後ではなく途中にtags/trunk/branchなどがあればそれ
を見ておくというものです.
302以降はちゃんとした(向こうが想定している)ディレク��
�リ構造でも今は動いていない気がするので,そのためのパ�
��チになります.

k-okada@kokada-t430s:/opt/ros/groovy/bin$ diff catkin_prepare_release.org  
catkin_prepare_release 
102a103,104
>     print(fmt('@{gf}The following commands will be executed to commit 
package.xml file'))
>     print(fmt('  @{bf}@{boldon}%s@{boldoff}' % ' '.join(cmd)))
119,124c121,126
<         if svn_url.endswith(TRUNK):
<             base_url = svn_url[:-len(TRUNK)]
<         elif os.path.dirname(svn_url).endswith(BRANCHES):
<             base_url = os.path.dirname(svn_url)[:-len(BRANCHES)]
<         elif os.path.dirname(svn_url).endswith(TAGS):
<             base_url = os.path.dirname(svn_url)[:-len(TAGS)]
---
>         if svn_url.find(TRUNK) > 0 :
>             base_url = svn_url[:svn_url.find(TRUNK)]
>         elif os.path.dirname(svn_url).find(BRANCHES) > 0 :
>             base_url = 
os.path.dirname(svn_url)[:os.path.dirname(svn_url).find(BRANCHES)]
>         elif os.path.dirname(svn_url).find(TAGS) > 0:
>             base_url = 
os.path.dirname(svn_url)[:os.path.dirname(svn_url)(TAGS)]
128a131,132
>         print(fmt('@{gf}The following commands will be executed to commit the 
changes and tag the new version:'))
>         print(fmt('  @{bf}@{boldon}%s@{boldoff}' % ' '.join(cmd)))
302,307c306,308
<         commands = []
<         commands.append(commit_files(base_path, vcs_type, packages, 
missing_changelogs_but_forthcoming, new_version, dry_run=True))
<         commands.append(tag_repository(base_path, vcs_type, tag_name, 
dry_run=True))
<         print(fmt('@{gf}The following commands will be executed to commit the 
changes and tag the new version:'))
<         for cmd in commands:
<             print(fmt('  @{bf}@{boldon}%s@{boldoff}' % ' '.join(cmd)))
---
>         commit_files(base_path, vcs_type, packages, 
missing_changelogs_but_forthcoming, new_version, dry_run=True)
>         tag_repository(base_path, vcs_type, tag_name, dry_run=True)
> 

Original comment by kei.ok...@gmail.com on 2 Oct 2013 at 5:58

GoogleCodeExporter commented 9 years ago
https://github.com/ros/catkin/pull/522 してみました.

Original comment by kei.ok...@gmail.com on 2 Oct 2013 at 11:59

GoogleCodeExporter commented 9 years ago
https://github.com/ros/catkin/pull/527 は 
https://github.com/ros/catkin/issues/513 を fix 
してますかね?今から手元でも試してみますが.

Original comment by gm130s on 4 Oct 2013 at 10:45

GoogleCodeExporter commented 9 years ago
はい。治っているはずです。

Original comment by kei.ok...@gmail.com on 4 Oct 2013 at 10:51

GoogleCodeExporter commented 9 years ago
うまくいきました.ハイフンが入らないのでパッチ出し中��
�す.https://github.com/ros/catkin/pull/528

あとは catkin_generate_changelog を svn 対応します.

Original comment by gm130s on 4 Oct 2013 at 12:45

GoogleCodeExporter commented 9 years ago
なるほど、-tハイフンかマイナスをつけろといことかと思っ
ていましたが、自動でつけてくれるほうがいいですね。+1と
かしたらいいんでしょうか?

Original comment by kei.ok...@gmail.com on 4 Oct 2013 at 12:59

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
-   -tハイフン
+.  -tで書いたタグの中にハイフン

Original comment by kei.ok...@gmail.com on 4 Oct 2013 at 1:02

GoogleCodeExporter commented 9 years ago
そうですね,OSRF 
からも何か言ってくると思うので,意見は PR 
にコメントして下されば.

Original comment by gm130s on 4 Oct 2013 at 1:31

GoogleCodeExporter commented 9 years ago
元々のこのチケットの要望は,連続する二つの tag 間で 
changelog を出力したい,というところかなと思います.

catkin_generate_changelog という便利コマンドがありますが,svn 
未対応で,今後もサポートの予定はないようです.また,sv
n レポジトリは trunk 以下に複数 package を置くのは,__catkin__ 
では推奨されないようです.
https://github.com/ros/catkin/issues/556#issuecomment-29875009

一つのオプションは,ROS にリリースするパッケージは 
github 
に移すことかと.色々メリットは大きいですが[1].例えば��
�始めに rtmros_{ common, hironx } 
を移行するのはどうでしょうか.

[1] http://code.google.com/p/rtm-ros-robotics/issues/detail?id=290

Original comment by gm130s on 21 Jan 2014 at 5:18