<!--
   $FML: preface.sgml,v 1.11 2001/11/23 15:00:46 fukachan Exp $
-->


<preface id="preface">
	<title>
	前書き
	</title>


<warning>
<para>
現状の &fml5; はかなり使えますが、
ドキュメントも不十分だし、
機能も 4.0 の半分弱程度です。
</para>

<para>
そういう意味で、実運用には、まだ 
<ulink url="http://www.fml.org/software/fml/menu.html">
4.0 stable
</ulink>
を使う方がよいでしょう。
</para>

<para>
2001 年も終りに近付く今日この頃、
&fml5; は開発用とはいえ、十分実用的に動いています。
makefml や CGI でユーザの登録もできるし、
HTML 化機能＋スレッド追跡システムは便利で、
作者は、(特に 4.0 にない諸機能を使うために)運用ベースで使っています。
ただ、多くのこまごまとした機能は未実装ですし、
再デザインの研究最終段階といったあたりという感じです。
</para>
</warning>



<!-- ======================================================== -->
<sect1 id="way.to.fmlng">

	<title>
	次世代 fml への道 
	</title>

<para>
&fml5; もしくは fml 5.0 (仮称) プロジェクト
とは fml 4.0 を一から書き直す次世代 fml プロジェクトの総称
	<footnote>
	<para>
	ざっくりとしたイメージしては
	4.0 と 5.0 の違いは
	sendmail と postfix のような関係といえるでしょう。
	</para>
	</footnote>
です。
これは fml 4.0 までに至る約 10 年の経験を再実装する試みといえます。
つまり、この試みには何年もの歳月がかかっても不思議はないでしょう。
</para>

<para>
次世代 fml の考え方は fml 4.0 の”機能”を再構想/再実装することです。
これはデザインを一から考え直すことに加え、
機能や変数の整理整頓も含みます。
</para>

<para>
まず最初にするべきことは 4.0 の機能とそのデザインについての再検討です。
例えば、次のような項目が考えられます。

    <itemizedlist>


    <listitem>
	<para>
	5.0 へ引き継ぐべき機能は何か？
	</para>
    </listitem>


    <listitem>
	<para>
	5.0 でもっとうまく、
	よりカスタマイズしやすいものに実装できないか？
	</para>
    </listitem>


    <listitem>
	<para>
	もう要らない機能はどれか？
	</para>
    </listitem>

    </itemizedlist>

これらについての意見を募集したいと思っています。ですが、漠然と議論して
もしょうがないので、議論の叩き台として動くものを作りつつあります。
</para>

<para>
<ulink url="http://www.fml.org/software/fml-devel/">
http://www.fml.org/software/fml-devel/
</ulink>
</para>

<para>
<ulink url="ftp://ftp.fml.org/pub/fml-devel/">
ftp://ftp.fml.org/pub/fml-devel/
</ulink>
</para>

<para>
これは、あくまでもアイデアを表現するためのものなので、機能は最低限のも
のしかありませんが、十分動きます。
作者は fml-devel ＭＬをはじめ、
いくつかの場所で運用ベースで使っています。
もっとも、
変数名もアーキテクチャアも本決まりではないので、
将来変わる可能性はありますが…
</para>

<para>
最初の試金石バージョンがリリースされる際には、
<screen>
fml 1.2 相当の最低限の機能
+ makefml (CUI + CGI) が加わったもの 
+ 自動スレッド追跡システム
+ 自動 HTML 化機構
</screen>
が動くようになっている見通しです。
</para>

</sect1>


<!-- ======================================================== -->
<sect1 id="fml.and.fmlng">
	<title>
	fml 4.0 と 5.0 の関係 
	</title>

<para>
4.0 と 5.0 は
&fml5; で作られたモジュールのマージと
4.0 自体のコードの保守をしつつ、
並行開発されていっています。
</para>

<para>
そのため 4.0 系は fml project 全体の中で、
相対的に stable に近い current という位置付けになります。
4.0 の bug fix は 4.0.x (4.0.1 4.0.2 …)としてまとめられリリー
スれていく予定です。
4.0-current は 4.0.x のためのテストケースであり、
5.0 は本当の開発コード( fml-current )という位置付けといえます。
</para>

<screen>
             -----------------------------> 5.0 (本プロジェクトの目標)
                       ↑↓交流
1.2  〜 4.0 ------------------------------> 4.0-current
              |      |
            4.0.1   4.0.2 .... (リリース / 4.0-stable バージョン)
</screen>


<para>
fml 5.0 用に作られたモジュールを fml 4.0 へ輸入する予定です。
たとえば 4.0 でも独立性の高い mead (エラーメール解析プログラム)や、
スレッド追跡システムです。
これは 5.0 の機能を 4.0 でテストをするいう意味あいもあります。
この作業は 4.0.4 か 4.0.5 以降本格化する予定です。
</para>

<para>
言い替えると、
4.0 系列の bug fix は 4.0 で行ないますが、
新機能は、5.0 で開発したものをモジュール単位で 4.0 へ輸入していく
形をとります。
</para>


</sect1>


<!-- ======================================================== -->
<sect1>
	<title>
	&fml5; で既に動く機能 
	</title>

<para>

    <itemizedlist>


    <listitem>
	<para>
	postfix スタイルの設定ファイル 
	</para>
    </listitem>


    <listitem>
	<para>
	配送、
	ヘッダの書き換え、
	フィルタ( 4.0 の Envelope Filter に相当するもの ) 
	</para>
    </listitem>

    <listitem>
	<para>
	MTA が起動するメインのプログラム:
	fml.pl distribute command
	</para>
    </listitem>


    <listitem>
	<para>
	いくつかのユーティリティ:
	fmlconf
	fmldoc
	fmlhtmlify
	fmlsch
	fmlthread
	makefml
	</para>
    </listitem>


    <listitem>
	<para>
	CGI :
	fmlsch.cgi
	fmlthread.cgi
	makefml.cgi
	</para>
    </listitem>


    <listitem>
	<para>
	IPv6 による配送
	</para>
    </listitem>


    <listitem>
	<para>
	スレッド追跡システム(CUI と CGI を含む):
	(fmlthread fmlthread.cgi)
	</para>
    </listitem>


    <listitem>
	<para>
	記事の HTML 化システム:
	fmlhtmlify および makefml に HTML 化コマンドがあります。
	</para>
    </listitem>


    <listitem>
	<para>
	<link linkend="module.io.adapter">
	抽象化 IO 層
	</link>
	メンバーファイルをファイル、/etc/group, NIS, MySQL 
	から取り出すことができます。
	</para>
    </listitem>
    </itemizedlist>
</para>

</sect1>


<!-- ======================================================== -->
<sect1 id="mailinglist">

	<title>
	メーリングリスト 
	</title>

<para>
fml 5 の議論のためのメーリングリストを用意してあります。
</para>

<para>
登録の仕方はいつもと一緒です。

fml-devel MLへの自動登録は fml-devel-ctl@ffs.fml.org へ 
subscribe の後に自分の名前をローマ字で続けたフレーズをメールの"本文"
(注意: メールの本文)に書いて送って下さい。例えば次のようになります。

<screen>
To: fml-devel-ctl@ffs.fml.org

subscribe Kinomoto Sakura
</screen>

このメールに対し、登録意志確認のメールが送り返されてきます。
そのメールに返事をしてください。
ＭＬに登録されます。
</para>

<para>
fml-devel ＭＬのログは
	<ulink url="http://www.fml.org/mlarchives/">
	http://www.fml.org/mlarchives/
	</ulink>
で公開しています。
</para>

<para>
ＭＬに参加しないが、要望等を送りたいという場合、ＭＬではなく 

	<ulink url="mailto:fml-request@fml.org">
	fml-request@fml.org
	</ulink>

へメールを送って下さい。このメールは適宜 fml-devel 等に流して議論した
いと思います。他にフォワードなどされたくない場合はその旨を一筆書いてお
いて下さい。
</para>

</sect1>


<!-- ======================================================== -->
<sect1>

	<title>
	ご意見募集中 
	</title>

<para>
&fml5; のアイデアのついて、
<ulink url="mailto:fml-request@fml.org">
ご意見・御感想をお待ち
</ulink>
しております。
端的にいえば 4.0 のここは受け継ぎたいが、あの機能は
どうでもよいとか、あの機能はこう実装するべきだなどといった
意見も募集しています。
</para>

</sect1>


<!-- テクニカルタームの定義を与える -->
&sect.terms;


</preface>
