{"title":"Django のリリースプロセス","version":"5.0","locale":"ja","docname":"internals/release-process","url":"/ja/5.0/internals/release-process/","canonical":"https://djangodocs.dev/ja/5.0/internals/release-process/","summary":"公式リリース Link to this heading # バージョン 1.0 以降から、Django のリリース番号は以下の規則に従って付けられています。 バージョン番号は、 A.B または A.B.C の形式で表される。 A.B は フィーチャーリリース…","html":"<h1>Django のリリースプロセス<a class=\"heading-anchor\" href=\"#django-s-release-process\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"official-releases\">\n<span id=\"id1\"></span><h2>公式リリース<a class=\"heading-anchor\" href=\"#official-releases\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>バージョン 1.0 以降から、Django のリリース番号は以下の規則に従って付けられています。</p>\n<ul class=\"simple\">\n<li><p>バージョン番号は、<code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code> または <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B.C</span></code> の形式で表される。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code> は <em>フィーチャーリリース</em> 版の番号です。大抵の場合、それぞれのバージョンで、前回のリリースとの後方互換性が保たれます。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">C</span></code> は、<em>パッチリリース</em> のバージョン番号で、バグフィックスとセキュリティリリースが追加されるたびに数字が1つ増えます。このリリースでは、前回のパッチリリースに対して 100% の後方互換性が保証されています。唯一の例外は、セキュリティやデータの喪失の問題によって、後方互換性を修正するために後方互換性を破らざるをえない場合のみです。このようなことが起こった場合には、パッチリリースが出された場合には、リリースノート内に更新の詳細な手順が書かれます。</p></li>\n<li><p>新しいフィーチャーリリースの前に、アルファ、ベータ、およびリリース候補版が作られます。これらのリリースのバージョン番号は <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span> <span class=\"pre\">alpha/beta/rc</span> <span class=\"pre\">N</span></code> の形式で表され、バージョン <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B</span></code> の <code class=\"docutils literal notranslate\"><span class=\"pre\">N番目の</span></code> アルファ/ベータ/リリース候補版であることを意味します。</p></li>\n</ul>\n<p>git では、それぞれの Django リリースに対して、Django のリリースキーでサインされた、バージョン番号を指すタグが付与されています。さらに、一連のリリースはそれぞれ自分のブランチを持ち、<code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code> と呼ばれ、バグフィックスやセキュリティのリリースは、このブランチから作られます。</p>\n<p>Django プロジェクトでセキュリティ対策の新しいリリースを公開する方法について詳しく知りたければ、<a class=\"reference internal\" href=\"/ja/5.0/internals/security/\"><span class=\"doc\">Django のセキュリティポリシー</span></a> を読んでください。</p>\n<dl class=\"glossary\">\n<dt id=\"term-Feature-release\">フィーチャーリリース<a class=\"heading-anchor\" href=\"#term-Feature-release\"><span class=\"visually-hidden\">Link to this term</span><span aria-hidden=\"true\">#</span></a></dt><dd><p>フィーチャーリリース (A.B、A.B+1 など) は、だいたい8ヶ月ごとに公開されます。詳しくは <a class=\"reference internal\" href=\"#id2\">release process</a> を読んでください。このリリースには、新機能や既存の機能への改良などが含まれます。</p>\n</dd>\n<dt id=\"term-Patch-release\">パッチリリース<a class=\"heading-anchor\" href=\"#term-Patch-release\"><span class=\"visually-hidden\">Link to this term</span><span aria-hidden=\"true\">#</span></a></dt><dd><p>パッチリリース (A.B.C、A.B.C+1 など) は必要に応じて公開されます。このリリースでは、バグフィックスやセキュリティ問題へのパッチが含まれます。</p>\n<p>このリリースでは、セキュリティ問題の解決やデータの損失を避けられない例外的な場合を除いて、対応するフィーチャーリリースとの 100% 後方互換性が保証されています。そのため、「最新のパッチリリースは更新するべきでしょうか？」という質問に対する答えは、常に「はい」です。</p>\n</dd>\n<dt id=\"term-Long-term-support-release\">長期サポートリリース<a class=\"heading-anchor\" href=\"#term-Long-term-support-release\"><span class=\"visually-hidden\">Link to this term</span><span aria-hidden=\"true\">#</span></a></dt><dd><p>特定のフィーチャーリリースは、長期サポート (long-term support; LTS) リリースに指定されます。このリリースは、通常3年間の保証期間内であれば、セキュリティ問題とデータ損失問題へのパッチが適用されることになっています。</p>\n<p>長期保証に指定されたリリースを確認するには、<a class=\"reference external\" href=\"https://www.djangoproject.com/download/\">the download page</a> を見てください。</p>\n</dd>\n</dl>\n</section>\n<section id=\"release-cadence\">\n<span id=\"internal-release-cadence\"></span><h2>リリース周期<a class=\"heading-anchor\" href=\"#release-cadence\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 2.0 から、緩い形で <a class=\"reference external\" href=\"https://semver.org/\">セマンティックバージョニング</a> を採用します。LTSの次のバージョンは必ず、&quot;.0&quot; に上げられます。例えば、 2.0, 2.1, 2.2 (LTS), 3.0, 3.1, 3.2 (LTS), という具合です。</p>\n<p>SemVer を使用すると、リリースの互換性が一目でわかりやすくなります。また、互換性のシムがいつ削除されるかを予測するのにも役立ちます。これは、各機能リリースが引き続き、非推奨のパスが可能でないか、またはコストに見合わない場合に限り、いくつかのドキュメント化された後方互換性のない変更を持ち続けるため、純粋な形の SemVer ではありません。また、LTS リリース (X.2) で開始された非推奨は、少なくとも2つの機能リリースの間、非推奨のシムを保持するという私たちのポリシーに対応するため、非ドットゼロリリース (Y.1) で削除されます。次のセクションに進んで、例を読んでください。</p>\n</section>\n<section id=\"deprecation-policy\">\n<span id=\"internal-release-deprecation-policy\"></span><h2>非推奨のポリシー<a class=\"heading-anchor\" href=\"#deprecation-policy\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>新しいフィーチャーリリースでは、過去のリリースにある特定の機能が非推奨になることがあります。過去のフィーチャーリリース A.x のある機能が新しいフィーチャーリリースで非推奨になった場合、すべての A.x のバージョン (x の全バージョンに対して) では、それまで通りに機能し続けますが、警告が出るようになります。非推奨になった機能は、バージョン B.0 のリリースで削除されます。ただし、機能の非推奨が A.x の最後のフィーチャーリリースで行われた場合に限り、最低でも2つのフィーチャーリリースで非推奨期間が続いた後に、バージョン B.1  のリリースで削除されます。</p>\n<p>したがって、たとえば、Django 4.2 である機能を非推奨にすることを決定した場合、その機能は次のような過程をたどることになります。</p>\n<ul class=\"simple\">\n<li><p>Django 4.2 には後方互換性のある機能のレプリカが含まれ、<code class=\"docutils literal notranslate\"><span class=\"pre\">RemovedInDjango51Warning</span></code> が発生します。</p></li>\n<li><p>Django 5.0（4.2 の次のバージョン）は、後方互換性のあるレプリカを引き続き含んでいます。</p></li>\n<li><p>Django 5.1 では、この機能が完全に除外されます。</p></li>\n</ul>\n<p>警告はデフォルトで表示されません。これらの警告の表示を有効にするには、<code class=\"docutils literal notranslate\"><span class=\"pre\">python</span> <span class=\"pre\">-Wd</span></code> オプションを使用します。</p>\n<p>より一般的な例では、次のようになります。</p>\n<ul class=\"simple\">\n<li><p>X.0</p></li>\n<li><p>X.1</p></li>\n<li><p>X.2 LTS</p></li>\n<li><p>Y.0: X.0 および X.1 で追加された非推奨のシムを削除します。</p></li>\n<li><p>Y.1: X.2で追加された非推奨のシムを削除します。</p></li>\n<li><p>Y.2 LTS: 非推奨のシムは削除されません (Y.0 はサポートされていませんが、サードパーティアプリは LTS から LTS へのアップグレードを容易にするために X.2 LTS までの互換性を維持する必要があります)。</p></li>\n<li><p>Z.0: Y.0 および Y.1 で追加された非推奨のシムを削除します。</p></li>\n</ul>\n<p>関連情報として、 <a class=\"reference internal\" href=\"/ja/5.0/internals/contributing/writing-code/submitting-patches/#deprecating-a-feature\"><span class=\"std std-ref\">Deprecating a feature</span></a> ガイドも参照してください。</p>\n</section>\n<section id=\"supported-versions\">\n<span id=\"supported-versions-policy\"></span><h2>サポートバージョン<a class=\"heading-anchor\" href=\"#supported-versions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django の開発チームは、常時さまざまなレベルでリリースセットへのサポートを提供しています。詳しくは、ダウンロードページの <a class=\"reference external\" href=\"https://www.djangoproject.com/download/#supported-versions\">サポートバージョンのセクション</a> にある、各バージョンに対する現在のサポート状況のリストを見てください。</p>\n<ul>\n<li><p>現在の開発ブランチ <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> は、大規模なリファクタリングを必要とする新機能とバグ修正を受け取ります。</p></li>\n<li><p>メインブランチに適用されたパッチは、重大な問題を修正する場合に限り、それが属する機能リリースシリーズの最新フィーチャーリリースブランチにも適用され、次のパッチリリースでリリースされなければなりません:</p>\n<ul class=\"simple\">\n<li><p>セキュリティ上の問題。</p></li>\n<li><p>データ損失のバグ。</p></li>\n<li><p>クラッシュのバグ。</p></li>\n<li><p>最新の安定版リリースの新機能における主要な機能バグ。</p></li>\n<li><p>現在のリリースシリーズで以前のバージョンの Django から導入されたリグレッション。</p></li>\n</ul>\n<p>一般的な原則として、リリースを最初から阻止する可能性があったバグ (リリースブロッカー) に対する修正は、最後の機能リリースにバックポートされます。</p>\n</li>\n<li><p>セキュリティ修正とデータ損失のバグは、現在のメインブランチ、最後の2つの機能リリースブランチ、およびその他のサポートされている長期サポートリリースブランチに適用されます。</p></li>\n<li><p>ドキュメントの修正は、一般的に最後のリリースブランチにもっと自由にバックポートされます。それは、最新リリースのドキュメントが最新かつ正確であることが非常に有利であり、リグレッションを導入するリスクがそれほど心配されないためです。</p></li>\n</ul>\n<p>具体的な例として、Django 5.1 と 5.2 のリリースの中間点にある時点を考えてみましょう。この時点で:</p>\n<ul class=\"simple\">\n<li><p>新機能は開発のメインブランチに追加され、Django 5.2としてリリースされます。</p></li>\n<li><p>重大なバグ修正は <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/5.1.x</span></code> ブランチに適用され、5.1.1、5.1.2 などとしてリリースされます。</p></li>\n<li><p>データ損失の問題に対するセキュリティ修正とバグ修正は、<code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/5.1.x</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">stable/5.0.x</span></code>、そして <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/4.2.x</span></code> (LTS) のブランチに適用されます。これらは <code class=\"docutils literal notranslate\"><span class=\"pre\">5.1.1</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">5.0.5</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">4.2.8</span></code> などをリリースします。</p></li>\n<li><p>ドキュメントの修正は、main に適用され、容易にバックポート可能であれば、最新の安定ブランチ <code class=\"docutils literal notranslate\"><span class=\"pre\">5.1.x</span></code> にも適用されます。</p></li>\n</ul>\n</section>\n<section id=\"release-process\">\n<span id=\"id2\"></span><h2>リリースプロセス<a class=\"heading-anchor\" href=\"#release-process\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django は期間に基づいたスケジュールを採用しています。フィーチャーリリースは約8ヶ月ごとにリリースされます。</p>\n<p>それぞれのフィーチャーリリースの公開後、リリースマネージャは次のフィーチャーリリースのスケジュールを告知します。</p>\n<section id=\"release-cycle\">\n<h3>リリースサイクル<a class=\"heading-anchor\" href=\"#release-cycle\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>それぞれのリリースサイクルは、以下の3つのパートからなります。</p>\n<section id=\"phase-one-feature-proposal\">\n<h4>フェーズ1: 機能の提案<a class=\"heading-anchor\" href=\"#phase-one-feature-proposal\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>リリースプロセスの最初の段階には、次のバージョンに含める主要な機能を何にするかを決定することが含まれます。これには、それらの機能に関するかなりの予備作業が含まれるべきです。実際に動くコードの量はその大規模な設計を上回ります。</p>\n<p>今後のリリースの主要な機能は、たとえば <a class=\"reference external\" href=\"https://code.djangoproject.com/wiki/Version1.11Roadmap\">https://code.djangoproject.com/wiki/Version1.11Roadmap</a> のように、ウィキのロードマップページに追加されます。</p>\n</section>\n<section id=\"phase-two-development\">\n<h4>フェーズ2: 開発<a class=\"heading-anchor\" href=\"#phase-two-development\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>リリーススケジュールの第二部は &quot;heads-down&quot;（真剣）作業期間と呼ばれます。フェーズ 1 の終わりに作成されたロードマップを使用し、私たちはそれに記載されている全てのタスクを完了するために非常に一生懸命働きます。</p>\n<p>フェーズ 2 の終わりに未完成の機能は、次のリリースまで延期されます。</p>\n<p>フェーズ 2 はアルファリリースで締めくくられます。この時点で、<code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code> ブランチは <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> からフォークされます。</p>\n</section>\n<section id=\"phase-three-bugfixes\">\n<h4>フェーズ3: バグフィックス<a class=\"heading-anchor\" href=\"#phase-three-bugfixes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>リリースサイクルの最終段階はバグ修正に費やされます。この時期に新機能が受け入れられることはありません。アルファ版のリリースから1ヶ月後にはベータ版を、ベータ版のリリースから1ヶ月後には リリース候補版をリリースしようと努めます。</p>\n<p>リリース候補は文字列のフリーズを示し、最終リリースの少なくとも 2 週間前に行われます。この時点以降、新しい翻訳可能な文字列を追加してはいけません。</p>\n<p>この段階では、マージャーはリグレッションを導入しないようにバックポートに対してより慎重になります。リリース候補の後は、リリースブロッカーとドキュメントの修正のみがバックポートされるべきです。</p>\n<p>このフェーズと並行して、<code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> は新しい機能を受け取ることができ、それらは <code class=\"docutils literal notranslate\"><span class=\"pre\">A.B+1</span></code> サイクルでリリースされます。</p>\n</section>\n</section>\n<section id=\"bug-fix-releases\">\n<h3>バグフィックスリリース<a class=\"heading-anchor\" href=\"#bug-fix-releases\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>フィーチャーリリース (たとえば、A.B) の後、最新のリリースはバグフィックスモードに移行します。</p>\n<p>以前の機能リリース用のブランチ (例: <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B-1.x</span></code>) は、バグ修正を含みます。メインで修正された重大なバグは、バグ修正ブランチ <em>でも</em> 修正される必要があります。これは、コミットがバグ修正と機能追加をきれいに分離する必要があることを意味します。メインに修正をコミットする開発者は、現在のバグ修正ブランチにもその修正を適用する責任があります。</p>\n</section>\n</section>","rootId":"django-s-release-process","toc":[{"title":"公式リリース","anchor":"official-releases","children":[]},{"title":"リリース周期","anchor":"release-cadence","children":[]},{"title":"非推奨のポリシー","anchor":"deprecation-policy","children":[]},{"title":"サポートバージョン","anchor":"supported-versions","children":[]},{"title":"リリースプロセス","anchor":"release-process","children":[{"title":"リリースサイクル","anchor":"release-cycle","children":[{"title":"フェーズ1: 機能の提案","anchor":"phase-one-feature-proposal","children":[]},{"title":"フェーズ2: 開発","anchor":"phase-two-development","children":[]},{"title":"フェーズ3: バグフィックス","anchor":"phase-three-bugfixes","children":[]}]},{"title":"バグフィックスリリース","anchor":"bug-fix-releases","children":[]}]}],"breadcrumbs":[{"docname":"internals/index","title":"Django internals","url":"/ja/5.0/internals/"}],"prev":{"docname":"internals/security","title":"Django のセキュリティポリシー","url":"/ja/5.0/internals/security/"},"next":{"docname":"internals/deprecation","title":"Django の機能廃止のタイムライン","url":"/ja/5.0/internals/deprecation/"},"formats":{"html":"/ja/5.0/internals/release-process/","markdown":"/ja/5.0/internals/release-process.md","json":"/ja/5.0/internals/release-process.json"},"source":"https://github.com/django/django/blob/stable/5.0.x/docs/internals/release-process.txt","official":"https://docs.djangoproject.com/ja/5.0/internals/release-process/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}