API の安定性
| revision-up-to: | 7127 (0.97pre SVN) |
|---|
Django はまだリリース 1.0 に到達していませんが、 Django の公開 API の大半は リリース 0.95 をもってほぼ安定したといえます。このドキュメントでは、1.0 の リリースに向け、どの API を変更する予定か、どの API はそうでないかについて 説明します。
APIの安定性とは
ここでいう「安定」とは、以下のような意味をもちます:
- 公開 API -- リンクからたどれるドキュメント内で開設されていて、メソッド 名がアンダースコアで始まらないもの -- の配置や名前を変更する場合には、 以前のバージョンとの互換性のための別名のメソッドを提供します。
- API に新たな機能を追加する場合 -- これはよくあることですが -- でも、 既存のメソッドの意味を無くしたり、変えたりすることはありません。換言す れば、「安定」していても (必ずしも) 「完全」ではない、ということです。
- すでに安定と宣言されている API を何らかの理由で削除したり移動したりせ ねばならない場合、それらのメソッドは撤廃 (deprecated) とみなされ、少な くともバージョン 1.1 までは API 中に残します。撤廃されたメソッドを呼び 出した場合には警告メッセージを表示します。
- 深刻なバグやセキュリティホールによってやむを得ない場合に限り、これらの API に対して互換性のない変更を行います。
安定な API
以下の API は安定です:
- キャッシュ 。
- カスタムテンプレートタグとライブラリ (テンプレートの登録やロード方 法について例外的に変更される可能性があります)。
- データベース照合 (バリデーションを除きます。下記参照)。
- django-admin ユーティリティ 。
- FastCGI の組み込み 。
- フラットページ 。
- 汎用ビュー 。
- 国際化 。
- 古いデータベースの組み込み 。
- モデル定義 (汎用リレーション: generic relation を除きます。下記参照)。
- mod_python の組み込み 。
- リダイレクション 。
- リクエスト/レスポンスオブジェクト 。
- メールの送信 。
- セッション 。
- 設定ファイル 。
- 配信フィード 。
- テンプレート言語 (タグやフィルタに引数を渡す方法について例外的に変 更される可能性があります)。
- トランザクション 。
- URL のディスパッチ 。
上記のリストが Django API の大半に対応していることにお気づきでしょう。これ はある意味真理です -- というのも、 Django 1.0 に向けて計画されている変更は、 まだまだ水面下で行われているものか、あるいはわずかな部分的変更だからです。
現時点では、Django の 90% が将来のバージョンと互換性を持っているといっても よいでしょう。
とはいえ、以下の API についてはまだ安定 ではない と考えており、変更される 可能性があります:
- シリアライゼーション 関連の機能は現在活発に開発されており、おそらく 変更されることでしょう。
- 認証 フレームワークはより柔軟なものに向けて変更中であり、必然的に API への変更を伴うでしょう。
- コア部分 (core) のオプションコンポーネントへの依存を避けるため、汎用リ レーション (generic relation) をコアから、contrib の content-types パッ ケージに移動させるでしょう。
- コメント (comments) フレームワークにはまだドキュメントがありませんが、 このフレームワークは Django 1.0 以前に完全に書き直される予定です。劇的 な変更ではないにしろ、かなりの変更が加わることでしょう。