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 API の大半に対応していることにお気づきでしょう。これ はある意味真理です -- というのも、 Django 1.0 に向けて計画されている変更は、 まだまだ水面下で行われているものか、あるいはわずかな部分的変更だからです。

現時点では、Django の 90% が将来のバージョンと互換性を持っているといっても よいでしょう。

とはいえ、以下の API についてはまだ安定 ではない と考えており、変更される 可能性があります:

  • シリアライゼーション 関連の機能は現在活発に開発されており、おそらく 変更されることでしょう。
  • 認証 フレームワークはより柔軟なものに向けて変更中であり、必然的に API への変更を伴うでしょう。
  • コア部分 (core) のオプションコンポーネントへの依存を避けるため、汎用リ レーション (generic relation) をコアから、contrib の content-types パッ ケージに移動させるでしょう。
  • コメント (comments) フレームワークにはまだドキュメントがありませんが、 このフレームワークは Django 1.0 以前に完全に書き直される予定です。劇的 な変更ではないにしろ、かなりの変更が加わることでしょう。