{"title":"Django のリリースプロセス","version":"6.1","locale":"ja","docname":"internals/release-process","url":"/ja/6.1/internals/release-process/","canonical":"https://djangodocs.dev/ja/6.1/internals/release-process/","summary":"バージョン 1.0 以降から、Django のリリース番号は以下の規則に従って付けられています。","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\">A.B</code> または <code class=\"docutils literal notranslate\">A.B.C</code> の形式で表される。</p></li>\n<li><p><code class=\"docutils literal notranslate\">A.B</code> は <em>フィーチャーリリース</em> 版の番号です。大抵の場合、それぞれのバージョンで、前回のリリースとの後方互換性が保たれます。</p></li>\n<li><p><code class=\"docutils literal notranslate\">C</code> は、<em>パッチリリース</em> のバージョン番号で、バグフィックスとセキュリティリリースが追加されるたびに数字が1つ増えます。このリリースでは、前回のパッチリリースに対して 100% の後方互換性が保証されています。唯一の例外は、セキュリティやデータの喪失の問題によって、後方互換性を修正するために後方互換性を破らざるをえない場合のみです。このようなことが起こった場合には、パッチリリースが出された場合には、リリースノート内に更新の詳細な手順が書かれます。</p></li>\n<li><p>新しいフィーチャーリリースの前に、アルファ、ベータ、およびリリース候補版が作られます。これらのリリースのバージョン番号は <code class=\"docutils literal notranslate\">A.B alpha/beta/rc N</code> の形式で表され、バージョン <code class=\"docutils literal notranslate\">A.B</code> の <code class=\"docutils literal notranslate\">N番目の</code> アルファ/ベータ/リリース候補版であることを意味します。</p></li>\n</ul>\n<p>git では、それぞれの Django リリースに対して、Django のリリースキーでサインされた、バージョン番号を指すタグが付与されています。さらに、一連のリリースはそれぞれ自分のブランチを持ち、<code class=\"docutils literal notranslate\">stable/A.B.x</code> と呼ばれ、バグフィックスやセキュリティのリリースは、このブランチから作られます。</p>\n<p>For more information about how the Django project issues new releases for\nsecurity purposes, please see <a class=\"reference internal\" href=\"/ja/6.1/internals/security/\"><span class=\"doc\">our security policies</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\">RemovedInDjango51Warning</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\">python -Wd</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/6.1/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\">main</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\">stable/5.1.x</code> ブランチに適用され、5.1.1、5.1.2 などとしてリリースされます。</p></li>\n<li><p>データ損失の問題に対するセキュリティ修正とバグ修正は、<code class=\"docutils literal notranslate\">main</code> と <code class=\"docutils literal notranslate\">stable/5.1.x</code>、<code class=\"docutils literal notranslate\">stable/5.0.x</code>、そして <code class=\"docutils literal notranslate\">stable/4.2.x</code> (LTS) のブランチに適用されます。これらは <code class=\"docutils literal notranslate\">5.1.1</code>、<code class=\"docutils literal notranslate\">5.0.5</code>、<code class=\"docutils literal notranslate\">4.2.8</code> などをリリースします。</p></li>\n<li><p>ドキュメントの修正は、main に適用され、容易にバックポート可能であれば、最新の安定ブランチ <code class=\"docutils literal notranslate\">5.1.x</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>After each feature release, the release manager will publish a timeline for the\nnext feature release. The timeline for an upcoming feature release can be found\nin the corresponding wiki roadmap page, e.g.\n<a class=\"reference external\" href=\"https://code.djangoproject.com/wiki/Version6.0Roadmap\">https://code.djangoproject.com/wiki/Version6.0Roadmap</a>.</p>\n<section id=\"feature-release-schedule-and-stages\">\n<h3>Feature release schedule and stages<a class=\"heading-anchor\" href=\"#feature-release-schedule-and-stages\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"active-development-pre-feature-freeze\">\n<h4>Active development / Pre-feature freeze<a class=\"heading-anchor\" href=\"#active-development-pre-feature-freeze\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Work begins on the feature release <code class=\"docutils literal notranslate\">A.B</code> after the feature freeze of the\nprevious release, i.e. when the <code class=\"docutils literal notranslate\">stable/A.B-1.x</code> branch is forked.</p>\n<p>You can find the current branch under active development in the\n<a class=\"reference external\" href=\"https://code.djangoproject.com/#Djangoreleaseprocess\">Django release process</a> on Trac.</p>\n</section>\n<section id=\"feature-freeze-alpha-release\">\n<h4>Feature freeze / Alpha release<a class=\"heading-anchor\" href=\"#feature-freeze-alpha-release\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>All major and minor features, including deprecations and breaking changes, must\nbe merged by the feature freeze. Any features not done by this point will be\ndeferred to the next feature release.</p>\n<p>At this point, the <code class=\"docutils literal notranslate\">stable/A.B.x</code> branch will be forked from <code class=\"docutils literal notranslate\">main</code>.</p>\n</section>\n<section id=\"non-release-blocking-bug-fix-freeze-beta-release\">\n<h4>Non-release blocking bug fix freeze / Beta release<a class=\"heading-anchor\" href=\"#non-release-blocking-bug-fix-freeze-beta-release\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>After the alpha, all bug fixes merged in <code class=\"docutils literal notranslate\">main</code> are also backported to\n<code class=\"docutils literal notranslate\">stable/A.B.x</code>. Refactors are backported at the discretion of the merger.\nMergers will be more and more conservative with backports, to avoid introducing\nregressions.</p>\n<p>In parallel to this phase, <code class=\"docutils literal notranslate\">main</code> can continue to receive new features, to be\nreleased in the <code class=\"docutils literal notranslate\">A.B+1</code> cycle.</p>\n</section>\n<section id=\"translation-string-freeze-release-candidate-release\">\n<h4>Translation string freeze / Release candidate release<a class=\"heading-anchor\" href=\"#translation-string-freeze-release-candidate-release\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>If there is still a consistent stream of release blockers coming in at the\nplanned release candidate date, a beta 2 will be released to encourage further\ntesting and the release candidate date will be pushed out ~1 month.</p>\n<p>The release candidate marks the string freeze, and it happens at least two\nweeks before the final release. Translators can then submit updated\ntranslations for inclusion in the final release. After this point, new\ntranslatable strings must not be added.</p>\n<p>After the release candidate, only release blockers and documentation fixes are\nbackported.</p>\n</section>\n<section id=\"final-release\">\n<h4>Final release<a class=\"heading-anchor\" href=\"#final-release\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Ideally, the final release will ship two weeks after the last release\ncandidate.</p>\n<p>If there are major bugs still being found 2 weeks after the release candidate,\nthere will be a decision on how to proceed (likely another release candidate\nwould be issued and the final release date will be pushed out).</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\">stable/A.B-1.x</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":"Feature release schedule and stages","anchor":"feature-release-schedule-and-stages","children":[{"title":"Active development / Pre-feature freeze","anchor":"active-development-pre-feature-freeze","children":[]},{"title":"Feature freeze / Alpha release","anchor":"feature-freeze-alpha-release","children":[]},{"title":"Non-release blocking bug fix freeze / Beta release","anchor":"non-release-blocking-bug-fix-freeze-beta-release","children":[]},{"title":"Translation string freeze / Release candidate release","anchor":"translation-string-freeze-release-candidate-release","children":[]},{"title":"Final release","anchor":"final-release","children":[]}]},{"title":"バグフィックスリリース","anchor":"bug-fix-releases","children":[]}]}],"breadcrumbs":[{"docname":"internals/index","title":"Django internals","url":"/ja/6.1/internals/"}],"prev":{"docname":"internals/security","title":"Django のセキュリティポリシー","url":"/ja/6.1/internals/security/"},"next":{"docname":"internals/deprecation","title":"Django の機能廃止のタイムライン","url":"/ja/6.1/internals/deprecation/"},"formats":{"html":"/ja/6.1/internals/release-process/","markdown":"/ja/6.1/internals/release-process.md","json":"/ja/6.1/internals/release-process.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/internals/release-process.txt","official":"https://docs.djangoproject.com/ja/6.1/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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}