ここしばらくサブマリン状態で開発を継続してきたCatyですが、そろそろリリースします。以前とはだいぶ変わっています。
もうプロトタイプではありません
基本仕様や実装方式を決めるために発見的/試行錯誤的にいろいろやってみました。「何をどう作るか」に関して目星は付いたので、バージョン番号に付けていた "prototype" は削り取ります。次のバージョン番号はたぶん public-preview 0.1.0 とか。互換性がなくなればメジャー番号を上げるという方針は変えないので、まだしばらくはバージョン番号が大きく変わる可能性があります。
予定はしていても、まだ実装できてない機能はたくさんあります。しかし、それは手間の問題で、原理的な困難はないだろうと思っています。あるいは、原理的な困難を引き起こすような変更はしないと言い換えることもできます。
ライセンスはMITライセンスにします
今までGPLライセンスを使ってましたが、用途によってはGPLが障害となることがあるので、MITライセンス(Xライセンス)に切り替えることにしました。
MITライセンスは事実上のパブリックドメインで、誰が何に使おうが勝手です。GPLなど、他のライセンスとのバッティングもないので、問題を引き起こすことはまずないでしょう。煮るなと焼くなと好きに使ってください。
リリースブランチは作りません
今まで、リリースブランチを作ったり開発リポジトリをクローンしてリリースバージョンを作成していました。これは面倒だし、トラブルを引き起こすので、次回からはある時点でのスナップショットをそのままリリースとすることにします。これはこれで別な問題を引き起こしそうですが、とりあえずこの方式でやってみます。
原則として、メインラインの開発リポジトリは、整理整頓すればいつでもリリースできる状態に保つことになります。公開したくない/公開できないファイルは別リポジトリで管理します。このような分離ができない構造では実務上好ましくないので、楽に分離ができるような構造や手法を探ってみます。
誰でもテストを追加できます
サンプルやドキュメントは相変わらず不足している(つうか、ほとんど存在しない)のですが、仕様記述とテストを兼用する振る舞い記述ファイル(ファイル名拡張子は .beh)を付けます。
振る舞い記述ファイルは、CatyFITと呼ばれるテストシステムで処理され、結果レポートはブラウザで閲覧できます。CatyFITは、ウォード・カニンガムのFIT/FitNesseをCaty上で実装したものです*1。CatyFITは、本家FIT/FitNesseよりずっと使いやすいと思います。
詳細はいずれ述べる機会があると思いますが、テストを書く際にプログラミングは不要なので、いつでも誰でも思い立ったときにすぐさまテストを書けます。テスト=振る舞い記述の実体はWiki文書です。テストに説明や伝言を自由に書けるので、コミュニケーションが非常にスムーズになります。
背景となる理屈は次の記事に書いてありますが、もちろん、使うためにこんな理屈を知る必要はありません。
*1:[追記] FitNesseとCatyFITの構文や操作性は別物です。まったく互換性はありません。アイディアと基本的な構造だけ、FIT/FitNesseから拝借しています(「FIT/FitNesseにインスパイアされた」と言えばいいのかな?)。[/追記]