kumaryu日記
2011-03-30
_ 日記
先週なんか微妙に頭が痛いのが続いてたんだが、そろそろ治った。
延期してたイベントは4月29日からの3日間にやることに。 4月は3連休になるところがなくて1ヶ月以上延びちゃったけど、正直なところ出す物が間に合いそうもなかったので助かった感がある。 GWなんてものにかぶってるけどまあべつにいいべ。どうせみんな暇だよね。
とにもかくにも告知せんとな。
せっせと手直ししてたruby/daeがある程度整理できた。 ベース部分の整理ができたのであとはスキーマをなおして自動生成するだけ。 スキーマもがっつり手を入れるかぁ。
_ [monotone] monotone 1.0
ついにmonotone 1.0が出ましたよ!なんかトップページがすごいことになってますが。
いつものごとくNEWS意訳。
2011年3月26日(土) 10:53:47 UTC
1.0をリリース。
変更点
- データベースのスキーマが変更されました。ローカルおよびリモートに
ある全データベースに対して'mtn db migrate'を実行してください。
- 'mtn conflicts resolve_first interactive'において結果ファイルの
既定名が_MTN/resolutions/<left_path>になりました。
(monotone issue 103を修正)
- monotoneのフランス語訳が更新されてメインディストリビューションに
含まれるように復活しました。Steve Petruzzello <dlist@bluewin.ch>
の多大な貢献に感謝します!
- get_netsync_(read|write)_permittedが読み込むファイルは
read-permissionsとwrite-permissionsだけでなく、サブディレクトリ
read-permissions.dとwrite-permissions.d内のファイルも読むように
なりました。
- データベースのワークスペース追跡が"管理された"位置にない物にも適
用されるようになりました。
- automateコマンドでは内部的にロケールを"POSIX"に初期化するように
なりました。これによりスクリプトではmtn automateが呼び出したプロ
セスのロケールにかかわらず常に未翻訳のメッセージを出力することを
想定できるようになります。
- 'get_netsync_key'フックを二つのフックに分割しました。一つはクラ
イアントで使われるもの('get_netsync_client_key'、引数は元の
'get_netsync_key'と同じです)、もう一つはサーバで使われるもの
('get_netsync_server_key'、引数は渡された'--bind'を全て含むテー
ブルが一つ)です。カスタムフックを使っている場合は対応するよう見
直してください。
- 短かいオブション('-b'、'-d'などなど)が補完されなくなりました。
これで間違ったオプションを指定した時にもちゃんと失敗するように
なります。
(monotone issue 141をクローズ)
新機能
- 'mtn conflicts store'が競合の数と競合したファイル名を表示するよう
になりました。
(monotone issue 108を修正)
- 指定したデータベースにおける既知のワークスペースを出力する
'mtn list workspaces'コマンドを追加しました。
(monotone issue 129をクローズ)
バグ修正
- 内蔵の行マージが改行を常に"\n"に置き換えていたのを元の改行コード
を保持するようにしました。
- 'conflicts resolve_first'のヘルプを改善し引数順番を修正しました。
(monotone issue 101を修正)
- 0.48からの後退でdiffの出力がファイル名でアルファベット順に並ばな
くなっていたのを修正しました。
(monotone issue 102を修正)
- 'mtn privkey'がキーストアにプライベートキーのみがあるキーを認識し
ていなかったのを修正しました。
- Botan 1.9.9以降で動作できるようにした。
(monotone issue 104を修正)
- 'mtn pull'と'mtn sync'が常にワークスペースが更新されていないと言
ってきていたのを、'--update'オプションを指定し実際に更新が無かっ
た場合にのみ出力するようにしました。
(monotone issue 106を修正)
- 'mtn automate remote'と'mtn automate remote_stdio'においてリモー
トサーバキーフィンガープリントの読み書き検証を行なうのにエイリア
スで示されたデータベースを使用するようになりました。
(monotone issue 95を修正)
- 'mtn'スキームのnetsync URIにホスト部分が無かった場合に適切なエラー
メッセージを出すようになりました。
(monotone issue 110を修正)
- バイナリファイルを削除してmtn diffで差分を出力すると
"/dev/null is binary"と出力されていましたが、実際に取り除かれたフ
ァイル名を表示するようにしました。
(monotone issue 111を修正)
- データベースオプションを指定した時に間違って:memory:データベース
にフォールバックしてたのを修正しました。さらに'setup'や'clone'な
どのコマンドにデータベースを指定しなかった場合、設定されたデフォ
ルトデータベースにフォールバックする旨を表示するように戻りました。
(monotone issue 113を修正)
- 'mtn serve'に一つ以上の'--bind'オプションを指定するときに、以下の
ような引数を指定できるように戻りました。
'<ip-or-host>'
デフォルトのポートで待ち受けるIPまたはホスト名を指定します
'<ip-or-host>:<port>'
待ち受けるIPまたはホスト名とポートを指定します
':<port>'
全てのインターフェースで待ち受けるポートを指定します
(monotone issue 119を修正)
- 管理するデータベースの拡張子が".mtn"でなくてもよくなりました。新
しいLuaフックのget_default_database_glob()で受容するデータベース
のファイル名のパターンを指定できます。デフォルトでは".mtn"か".db"
で終わるファイル名を受け入れるようになっています。
(monotone issue 128を修正)
- 完全でないか一部のみのIDが16進数に適合しない文字を含んでいた場合
に適切なエラーメッセージを表示するようになりました。
(monotone issue 143を修正)
- "mtn ls changed"の速度が向上し"mtn status"と同等の速度になりまし
た。
(monotone issue 120を修正)
内部的な変更
- ソースツリーを再構成しました。ソース、テスト、ドキュメントがそれ
ぞれのディレクトリに分けられました。この大きな変更に付随してソー
スコード整理や開発者向けドキュメントやビルド環境に細かいながらも
多くの改善がなされました。
その他
- 新しいディレクトリextra/にmonotoneのフックや関連スクリプトを入れ
るようになりました。これらは大抵$(prefix)/share/monotone以下のど
こかにインストールされます。詳しくはextra/READMEを呼んでください。
- ワークスペースを最小の変更できれいな状態に戻すPerlスクリプト
mtn-cleanupを追加しました。このスクリプトはextra/binディレクトリ
に入っています。
思ったより訳に時間かかってしまった。
0.99や0.99.1がベータとかRC版だったので、それからは主にバグ修正ですね、当然だけど。 あとはソース整理やドキュメント整理にだいぶ時間をかけてたみたい。 確認してないけどドキュメントも結構変更入ってるんじゃないかな。
データベース指定しないと:memory:になるのはバグだったのか…。デフォルトデータベースに入ったはずなのにどこにも無いなーと探しまわってたよ。
mtn ls changedもよく使うのにやけに遅かったので速くなったのは嬉しい。1.0以前でもmtn status使えば良かったのか?
まあしかし俺も結構な間monotone使ってるけど普段はそれほど不満がないので1.0になったからどうってこともないのよね。というかドキュメント見るとそういやこんな機能あったっけというのがだいぶあるのでちょっとくらい複雑な機能も使いこなせるようになった方が楽しいかもしれん。
あとうちのサイトのチュートリアルを更新したいね。すっごい古くなっちゃってるんで1.0はいい区切りだ。
しかしインストールがめんどいな。MacPortsにはすぐ来てたしWindows用バイナリも上がってたからそれらはいいんだけど、このサーバはCentOSだ。yumとか打ってもてもmonotoneの古いバージョンすら無いので自前でビルドしないといけないんだけど…。依存するものそこそこあってめんどいんだよねぇ。まあnetsyncのプロトコルとか変わってないから急ぐ必要もないしゆっくりやるか。
_ PeerCastStation日記
リレーおよび視聴に関してはけっこう出来てきた気がする。
LAN内での通信とそれ以外をあちこちで判別してるんだけど、それのおかげでLAN内でのテストでは上手く確認できない機能があるよ!
どう確認しようかと困ったが相手のアドレスがLAN内かどうかの判定してる関数をごまかせばいいだけじゃねぇか。やってみたら案の定バグってたわ。 チャンネル情報からビットレートを拾ってくる部分が間違ってた。拡張性を重視した結果とてもわかりづらいことになってるのでなんとかしたいなぁ。
あとは送受信が淀みなく行なわれてるかの判定が出来てないんだけど必須ではないし、それ以外はそれなりに出来た気がするな。 これ以上のテストをやろうとすると一人ではすごく大変になってくる。実際の配信につないで試しちゃおうかなぁ。
しかし他人の配信につないで迷惑がかかったら嫌なんだが、自分の配信につないでもLAN内だから上手くテストにならないのが困るところ。 なんとか上手い方法はないものか…。Willcomではちょっと遅すぎる気がするしな。