https://www.r-labs.org/https://www.r-labs.org/welcome/index/themes/rlabs_theme_flat/favicon/favicon.ico?16655536462009-06-19T23:26:08Zr-labsHudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3452009-06-19T23:26:08ZToshiyuki Ando
<ul></ul><p>まずは、チケットの表示にどうやって割り込むのか、その方法を考える。</p>
<p>CodeReview がその方法を知っているはず。<< lib/code_review_application_hooks.rb だ!</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3472009-06-20T00:40:16ZToshiyuki Ando
<ul></ul><p>CodeReview の行っているHook は View に対する Hook は、以下のような仕組み。</p>
<ul>
<li>Redmine::Hook::ViewListener を継承したクラスを用意する</li>
<li>init.rb で require する</li>
<li>views/layouts/base.rhtml で画面をレンダリングする時に、Hook がよばれる</li>
</ul>
<p>base.rhtml では、以下の種類の Hook が呼び出される。</p>
<ul>
<li>view_layouts_base_html_head</li>
<li>view_layouts_base_sidebar</li>
<li>view_layouts_base_content</li>
<li>view_layouts_base_body_bottom</li>
</ul>
<p>チケットのViewにはHookないのだろうか?</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3482009-06-20T00:40:26ZToshiyuki Ando
<ul><li><strong>ステータス</strong> を <i>新規(New)</i> から <i>担当(Assigned)</i> に変更</li></ul> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3492009-06-20T00:44:49ZToshiyuki Ando
<ul></ul><p>Hookを呼び出す場合は、 call_hook という関数を使うようだから、<br />Redmine全体を call_hook で探してみればいいかもしれない。</p>
<p>結構出てきた。</p>
<ul>
<li>app/views/issues/bulk_edit.rhtml</li>
<li>app/views/issues/_sidebar.rhtml</li>
<li>app/views/issues/context_menu.rhtml</li>
<li>app/views/issues/_form.rhtml</li>
<li>app/views/issues/_history.rhtml</li>
<li>app/views/issues/_edit.rhtml</li>
<li>app/views/issues/show.rhtml<br />⇒ <strong>関係しているリビジョン</strong> はここで表示される(正しくはpartialでレンダリングをお願いしているのだけど)。</li>
</ul>
<p>さて。どれかいいのはあるだろうか?</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3502009-06-20T00:52:34ZToshiyuki Ando
<ul></ul><p>app/views/issues/show.rhtml では、以下の Hook が使える。</p>
<ul>
<li>view_issues_show_details_bottom<br />⇒ チケットの内容を拡張する場合に。</li>
<li>view_issues_show_description_bottom<br />⇒ 内容を表示し終わった後に何かする?場合に。</li>
</ul>
<p>view_issues_show_description_bottom を使うべきだろうけど、<br /><strong>関係しているリビジョン</strong> は、view_issues_show_description_bottom の後に表示される…。</p>
<p>とりあえず、ここに JavaScript を埋め込んで、関係しているリビジョンの内容を変更できるか<br />試してみよう。</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3512009-06-20T01:09:30ZToshiyuki Ando
<ul></ul><p>関連するリビジョンを取得する方法</p>
<ul>
<li>div (id = issue-changesets ) を探す</li>
<li>div (class = changeset) を探す</li>
<li><p> を探す…(ここにもクラスが設定されていれば…)</li>
<li><a> を探す</li>
<li><a> の innerhtml を表示してみる</li>
</ul>
<p>ここまでいけるかな?</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3522009-06-20T02:12:22ZToshiyuki Ando
<ul></ul><p>なんとかいけそう。<br />ビルドが失敗してた場合は、どうしよう?</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3532009-06-20T02:27:02ZToshiyuki Ando
<ul><li><strong>ファイル</strong> <i>redmine_hudson_add_build_message_to_issue.png</i> を追加</li></ul> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3542009-06-20T02:36:30ZToshiyuki Ando
<ul><li><strong>ファイル</strong> を削除 (<del><i>redmine_hudson_add_build_message_to_issue.png</i></del>)</li></ul> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3552009-06-20T02:36:46ZToshiyuki Ando
<ul><li><strong>ファイル</strong> <a href="/attachments/35">redmine_hudson_add_build_message_to_issue.png</a> <a class="icon-only icon-download" title="ダウンロード" href="/attachments/download/35/redmine_hudson_add_build_message_to_issue.png">redmine_hudson_add_build_message_to_issue.png</a> を追加</li></ul><p>時間もあったほうがいいよな…と。</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3562009-06-20T02:47:00ZToshiyuki Ando
<ul></ul><p>とりあえず、 redmine.org でも聞いてみる。<br />結局この機能を実装するには、</p>
<ul>
<li>すばやくビルドの情報を取得する必要があって</li>
<li>それにはDBに情報を溜め込んでいたほうがよくって</li>
<li>そうすると活動にビルドの情報を出せるようになる</li>
</ul>
<p>と、やることが多い(し、釣られて機能も増える)のであった。<br />じゃ、まずは、DBに情報を溜め込む=活動にビルド情報を出す に手を付けよう。</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3592009-06-20T02:50:11ZToshiyuki Ando
<ul><li><strong>ステータス</strong> を <i>担当(Assigned)</i> から <i>新規(New)</i> に変更</li></ul><p>とりあえずこっちは置いておくので。新規に戻す。</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3682009-06-21T05:28:37ZToshiyuki Ando
<ul><li><strong>ステータス</strong> を <i>新規(New)</i> から <i>担当(Assigned)</i> に変更</li></ul><p>Jens さんからお返事。</p>
<pre>
Really cool.
I think this is a great way to indicate the status of the project code.
</pre>
<p>いい感じの方法だと思う。</p>
<pre>
In my eyes, any job (maybe two or more) should be displayed which builds this code.
</pre>
<p>私からすれば、そのコードをビルドした幾つかのジョブが表示されるはずだ。</p>
<pre>
For example, we have a hudson job which builds our code and makes some small unit tests.
</pre>
<p>例えば、私たちはコードのビルドと、小さなユニットテストのためのジョブを持ってる。</p>
<pre>
Another hudson job starts at night and makes some big integration tests.
</pre>
<p>他のジョブは夜中に始まって、大きな結合テストをする。</p>
<pre>
So the build result should not be displayed at the top of the revision box.
</pre>
<p>だから、ビルド結果はリビジョンの先頭に表示するべきじゃないんだ。<br />(なるほど!確かにそうだ。)</p>
<pre>
Instead it should be displayed in front of each build message(jobname, number, date).
</pre>
<p>むしろ、結果は それぞれのビルドメッセージの前に出たほうがいい。</p>
<pre>
Please look at the screenshot attached for further details.
</pre>
<p>詳細はスクリーンショットを見てくれ。<br />(Success か Failure が頭に表示されてる。確かに)</p>
<pre>
>> This feature requires build info, so plugin may save a build info to database. (will work for show activities)
>> So what do you think?
How do you want to implement this?
</pre>
<p>君はどうやって実装したいんだい?<br />(どう思う?は、全体にかけたつもりだったんだけど、こういう場合は活動履歴もでるようになるよと書けばよかったか)</p>
<pre>
In my eyes, the hudson plugin has to automatically request in background the hudson
instance for new builds of the configured jobs in each project.
Maybe you can build this via a timer which can be configured in hudson settings
(request all 5|10|20|30... minutes).
</pre>
<p>プラグインは自動的にHudsonのビルド情報を取得すべきだろうね。<br />設定でタイマーを変更できるように。<br />(うーむ。定期的にジョブを動かす方法ってあるんだったっけ?)</p>
<pre>
In this case, you have to store information which build of which job is processed
already and which ones are new and have to be processed.
</pre>
<p>この場合は、情報を蓄積しないといけない。<br />どれが終わったか、新しいのはどれか、処理すべきなのはどれか。</p>
<pre>
For example, you can use the tag buildnumber in the xml representation
((https://hudson.jboss.org/hudson/job/devstudio-nightly-2.0.x/api/xml)) of a hudson
project to get the current build number and compare this to the number stored in database.
I think parsing the last changes of a hudson job and get out the revision/bug number
is not too hard.
</pre>
<p>例にあげると、ビルドのタグを使うことができる。XMLの中にあるやつ。<br />カレントのビルド番号を取り出して、データベースにあるやつと比較する。<br />最後の変更をパースして、リビジョンやバグ?番号を取り出すのはそんなに難しくないと思う。</p>
<pre>
What about the amount of data?
Ok, let us say we have three jobs for a redmine project.
</pre>
<p>データ量について?<br />OK、私がもってる3つのRedmineプロジェクトについて話すよ。</p>
<pre>
Two jobs are builded several times (20-30 times) one day.
The third job is only builded once at night.
The project duration is 200 working days year.
So there are 6200 (200 days * 30 builds * 2 jobs + 200 days *1 build *1 job) entries
in the database for this project.
Hmm, I think it is ok.
</pre>
<p>2つのジョブは20~30回くらい一日にビルドされる。<br />3つ目のジョブは、夜に一度だけ。<br />このプロジェクトの期間は200日くらい。<br />そうすると、6200(200日 * 30ビルド * 2ジョブ + 200日 * 1ビルド * 1ジョブ)エントリだが<br />データベースにあるわけだ。大丈夫じゃないかな。</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3702009-06-22T05:44:34ZToshiyuki Ando
<ul><li><strong>ファイル</strong> <a href="/attachments/36">redmine_hudson_add_build_message_to_issue_2.png</a> <a class="icon-only icon-download" title="ダウンロード" href="/attachments/download/36/redmine_hudson_add_build_message_to_issue_2.png">redmine_hudson_add_build_message_to_issue_2.png</a> を追加</li></ul><ul>
<li>ビルドの表示は、Jensさんのアドバイスの通りにしよう。</li>
<li>Hudsonへのポーリングは、やったことがないので、できるかどうか分からない。<br />リポジトリの場合は、表示したときに最新の情報を取得しているみたいだから、そっちの方法でいくかも。(もし定期的にポーリングする方法を知ってたら教えてほしい)</li>
<li>DBについてはあまり問題なさそうだね。<br />ChangeSetのためのエントリも増えるだろうけどそこまでひどいことにはならないと思う。</li>
</ul>
<p>という返事を書く。</p>
<p><img src="https://www.r-labs.org/attachments/download/36/redmine_hudson_add_build_message_to_issue_2.png" alt="" loading="lazy" /></p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=3712009-06-22T06:05:59ZToshiyuki Ando
<ul><li><strong>ステータス</strong> を <i>担当(Assigned)</i> から <i>新規(New)</i> に変更</li></ul><p>お返事完了。というわけで担当おしまい。<br />Background で動作させる方法教えてくれたら…やるしかないだろうなぁ。うむ。</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=4142009-07-01T08:26:40ZToshiyuki Ando
<ul><li><strong>ステータス</strong> を <i>新規(New)</i> から <i>解決(Resolved)</i> に変更</li><li><strong>進捗率</strong> を <i>0</i> から <i>100</i> に変更</li></ul><p>チェンジセットr193で適用されました。</p> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=4882009-07-17T15:45:45ZToshiyuki Ando
<ul><li><strong>対象バージョン</strong> を <i>0.2.0</i> から <i>0.1.5</i> に変更</li></ul> Hudson - Feature #75: チケットに関連づいたリビジョンがビルドされたら、履歴にビルド番号が追加されるhttps://www.r-labs.org/issues/75?journal_id=5202009-07-24T16:14:18ZToshiyuki Ando
<ul><li><strong>ステータス</strong> を <i>解決(Resolved)</i> から <i>終了(Closed)</i> に変更</li></ul>