[groonga-dev,01426] Re: Windows用mroongaのテストのお願い

Back to archive index

Kazuhiko kazuh****@fdiar*****
2013年 5月 22日 (水) 17:38:23 JST


かずひこです。おはようございます。

On 22/05/2013 09:09, Kouhei Sutou wrote:
>> 1. launchpadにレポジトリを作る
>> 2. MLでbuildbotのテストを足してもらう
>> 3. MLでレビューしてもらう
>>
>> まず、1. については、目指すマージ先のブランチからフォークして作ったレポ
>> ジトリにpushしていくことになりますが、今なら
>>   https://code.launchpad.net/~maria-captains/maria/10.0-base
>> からフォークすることになると思います。
>> また、今後も適宜groongaのgithubとか、mroongaのgithubとか、launchpadの
>> 10.0-baseとかと同期しまくることになるので、そのへんのプロセスをどうやっ
>> て(半)自動化しながら誰がメンテナンスしましょう? というのが課題になる
>> と思います。
> 
> こんなこともあろうかと!
>   http://packages.groonga.org/nightly/
> に毎晩スナップショット版を作るようにしたので、そこからダウン
> ロードして更新、みたいにすれば自動化できると思います。
> 
> MariaDBのソースにmroonga/groonga/groonga-normalizer-mysqlを
> 組み込む処理は↓のようにすでに整理できているので、それを使え
> ばすぐですよ!
>   https://github.com/mroonga/mroonga/blob/master/packages/source/Makefile.am#L80

おぉ、そんなあやしいMakefileがいつの間にかあるんですね。似たようなシェル
スクリプトをかつて書いていた記憶が。。。

> じゃあ、誰がやんの?という話になるんですが、かずひこさんはま
> だ(フリーソフトウェアの開発を)手伝ってくれる余力があったり
> するでしょうか。。。?

わたくし、フリーソフトウェアの開発以外はしていないつもりですが、それはそ
れとして、1. のブランチは、ownerを個人ではなくチームにして他の人もpushで
きるようにできたらいいなぁという感じです。"Maria developers"チームでいい
のか、"mroonga"チームを作るのがいいのか悩ましいけれど。

>> 2. については、現状のbuildbotの設定が公開されているので、その10.0向けの
>> 設定でそのままビルドできるのであれば、「10.0-baseと同じように、いろんな
>> プラットフォームでビルドしてほしい」というだけでいいと思います。
>> 参考 : http://kristiannielsen.livejournal.com/9997.html
> 
> とすると、これはあんまり問題にならなそうですね。
> ただ、↑のMakefileでやっている方法だとmroongaのテストケース
> をMariaDBのmysql-test/以下に移動していないので、そこだけ追加
> する必要がありそうですね。

かつてのスクリプトだと、テストらへんは

rsync -av --exclude="*.in" --exclude="Makefile*" --exclude="*.am"
~/git/mroonga/test/sql/include/ mysql-test/suite/mroonga_storage/inc/
rsync -a --exclude="*.in" --exclude="Makefile*" --exclude="*.am"
~/git/mroonga/test/sql/suite mysql-test/
sed -i -e
's,include/have_mroonga,suite/mroonga_storage/inc/have_mroonga,'
mysql-test/suite/mroonga*/*/*t
sed -i -e
's,include/have_fulltext,suite/mroonga_storage/inc/have_fulltext,'
mysql-test/suite/mroonga*/*/*t
sed -i -e
's,include/have_fractional,suite/mroonga_storage/inc/have_fractional,'
mysql-test/suite/mroonga*/*/*t
sed -i -e
's,include/have_mariadb,suite/mroonga_storage/inc/have_mariadb,'
mysql-test/suite/mroonga*/inc*/*inc
sed -i -e '/source include\/have_innodb.inc/d'
mysql-test/suite/mroonga*/*/*t
patch -Rp0 < mroonga_test.diff2

とか

--- mysql-test/suite/mroonga_storage/inc/have_mroonga.inc
2012-02-24 16:22:45.119713677 +0100
+++ mysql-test/suite/mroonga_storage/inc/have_mroonga.inc
2012-01-31 10:13:45.000000000 +0100
@@ -16,14 +16,10 @@

 disable_query_log;

-if (!`SELECT count(*) FROM information_schema.plugins WHERE
-      plugin_name = 'mroonga' AND plugin_status = 'active'`){
-  skip Need mroonga storage engine;
-}
-
-if (!`SELECT count(*) FROM information_schema.plugins WHERE
-      plugin_name = 'InnoDB' AND plugin_status = 'active'`){
-  skip Need InnoDB storage engine;
+if (!`SELECT 1 FROM information_schema.plugins WHERE plugin_name =
"mroonga"`)
+{
+  INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so';
+  INSTALL PLUGIN mroonga_stats SONAME 'ha_mroonga.so';
 }

 let have_default_storage_engine_variable=`SELECT 1 FROM
information_schema.global_variables WHERE variable_name =
"default_storage_engine"`;


とか、いろいろキモいことをしていたようですが、テストが増えたり減ったりリ
ネームされたりするたびに、それなりに人力がかかっていた気がします。このへ
んは、アイデアを出しながら極力自動でテストファイル群を更新できるようにし
たいところです。

> ところで、これはどちらに言えばいいんでしょうか?メーリングリ
> ストなんでしょうか。。。

そうですね。まずはvalgrindありでビルドとテストが通る1.をどうにか用意し
て、その時点で2.についてMLでお願い、でしょうか。

>> 3. については、テストが落ち着きしだい、MLやIRCで催促するといいと思いま
>> す。最終的にマージしようぜということになると、まず10.0-baseに入って、そ
>> こでテストとか確認してから10.0に入ればその次のリリースに入る、という順番
>> のはずです。
> 
> なるほど。
> ということは、まずは1., 2.をやってから、ということですね。
> 
>> あ、あとはdebとかrpmとかのビルドは多少変更が必要になるでしょうから、それ
>> はビルドスクリプトのレポジトリをまたフォークして云々になると思います。
> 
> おぉ、別リポジトリなんですか。
> MariaDBのリポジトリの中で、CPackでごにょごにょやっているのか
> と思っていました。

私の記憶が古すぎたようで、例えば
http://buildbot.askmonty.org/buildbot/builders/kvm-rpm-centos5-amd64/builds/2130/steps/compile/logs/stdio
とかを見ると、

case "10.0" in
*5\.[123]*)
  tar zxf ../.tar.gz
  cd
  sudo RPM_SKIP_SIGN=1 bakery/autobake51-centos.sh
../../mariadb-10.0.2.tar.gz
  sudo mv /usr/src/redhat/RPMS/*/*.rpm ../rpms/
  sudo mv /usr/src/redhat/SRPMS/*.rpm ../srpms/
  ;;
*)
  mv ../mariadb-shared-5.3-*.rpm MariaDB-shared-5.3.latest.rpm
  tar zxf "../mariadb-10.0.2.tar.gz"
  cd "mariadb-10.0.2"
  cmake .  -DBUILD_CONFIG=mysql_release -DRPM=centos5
  umask 022
  make package AM_EXTRA_MAKEFLAGS=VERBOSE=1
  mv *.rpm ../rpms/
  ;;
esac

という感じに、RPMパッケージのビルドもcmakeからやっているみたいですね。
じゃあdebはと言うと、
http://buildbot.askmonty.org/buildbot/builders/kvm-deb-quantal-amd64/builds/247/steps/compile/logs/stdio
を見ると

  AM_EXTRA_MAKEFLAGS=VERBOSE=1 debian/autobake-deb.sh

こんな感じでビルドしているっぽい。

というわけで、「パッケージのビルドは別レポジトリ」は間違いで、それも含め
て、1. のブランチをいい感じに作りましょう、ということですね。

>> ちなみに、一月ほど前の話ですが、斯波さんとgroongaチームには、MariaDBから
>> 祝辞が届いています。 :)
>>
>> https://www.facebook.com/MariaDB.dbms/posts/465502743519337
> 
> すごい!
> でも、これ、どうやって知ったんですかねぇ。。。
> かずひこさんがリークしたんですか?

いえ、リークしていません。私もすごく不思議に思っていたんです。

> 早くmroongaも「We look forward to getting SPIDER into
> MariaDB」みたいに言われるようになりたいですねぇ。

はいー。

かずひこ




groonga-dev メーリングリストの案内
Back to archive index