Python WebAcademy Blog

Djangoが年1回リリースへ。2028年から版番号は2028.0に、新しい運営ルールも承認されたニュースを初心者向けに解説

|

PythonのWebフレームワークDjangoが、2028年1月から年1回のリリースに切り替わります。版番号は2028.0のように年を表す形になり、どの版も3年間サポートされます。9月22日には運営ルールを定めたDEP 19も承認されました。何が変わり、これからDjangoを学ぶ人や使っている人は何を気にすればいいのかを、表とサンプルコードで整理します。

PythonのWebフレームワークであるDjangoが、2028年1月から年に1回のリリースへ切り替わります。次の大きな版は7.0ではなく、2028.0という年を表す番号になります。

あわせて2026年9月22日には、Djangoの運営ルールを定めたDEP 19が正式に承認されました。この2つは、Djangoの開発の進め方を数年ぶりに大きく変えるものです。

Djangoを学んでいる途中の方は、版番号が変わると聞いて少しどきっとしたかもしれません。結論から言うと、学習中の人が今すぐ何かを変える必要はありません。

今回は、何が決まったのかと、なぜそう決めたのかを順番に見ていきます。

まずは何が決まったのかを整理しよう

2つの決定が重なっているので、最初に全体を表にまとめます。DEPは、Djangoの仕様や運営の方針を文書にまとめた提案書です。

決定 中身 いつから
DEP 20 年1回のリリース、年を表す版番号、どの版も3年サポート 2028年1月の2028.0から
DEP 19 運営を担う委員会の役割や、委員になれる条件を整理 2026年9月22日に承認

PythonのPEPと同じような位置づけの文書だと考えるとわかりやすいです。

PEPについては、こちらで紹介しています。【関連記事】PEPとは?

Djangoそのものがまだよくわからない方は、先にこちらを読んでおくと話がつながります。【関連記事】PythonのDjangoとは?

Djangoは年に1回、1月にリリースされる

今のDjangoは、DEP 4で決められた約8か月ごとのリリースで動いています。DEP 20はこれを置き換えて、新機能の入った版を年に1回だけ出すことにしました。

新しい版は、毎年1月の第2週ごろに公開されます。その前には、次のような準備期間が設けられます。

時期 出るもの 意味
10月上旬〜中旬 アルファ版 Python本体の新バージョンが出た後に公開。新機能の受け付けはここで締め切り
11月上旬〜中旬 ベータ版 不具合を洗い出す段階
12月上旬〜中旬 リリース候補版 ほぼ完成した状態での最終確認
翌年1月 正式版 その年の番号を付けて公開

ここで面白いのは、アルファ版がPythonの新バージョンのすぐ後に置かれている点です。毎年10月に出るPythonの新版に、Djangoが足並みをそろえる形になっています。

バグ修正やセキュリティ修正の版は、これまでどおり毎月初めに出ます。深刻な脆弱性が見つかったときは、予定外の修正版が出ることもあります。

版番号は7.0ではなく2028.0に

もう1つの大きな変化が、版番号の付け方です。DEP 20では、年.通し番号という形のカレンダーバージョニングを採用しました。

カレンダーバージョニングは、CalVerとも呼ばれます。版番号を見ればいつ出た版なのかがすぐわかる、という考え方です。

具体例を表にまとめます。

版番号 意味
2028.0 2028年1月に出る新機能の版
2028.1 2028.0の後の、最初の修正版
2028.24 2028系の24回目の修正版
2029.0 2029年1月に出る次の新機能の版

今のように6.1.2のような3つ目の数字は使いません。修正版が出るたびに、後ろの数字が1つずつ増えていきます。

本来の7.0はどうなるのか

これまでの予定では、2027年12月にDjango 7.0が出るはずでした。DEP 20では、この7.0の代わりに2028.0を出すとしています。

つまり、6.x系がDjango最後の従来型の番号になります。6.xまでは、今までどおりのスケジュールで進みます。

番号が大きく飛んでも大丈夫なのか

6.2の次がいきなり2028.0になると、プログラムが混乱しないか心配になりますよね。DEP 20には、Pythonのパッケージ管理ツールが使う比較のルールでも、正しく順番どおりに並ぶと書かれています。

実際にPythonで確かめてみましょう。版番号をただの文字列として並べた場合と、数値として並べた場合を比べます。

from packaging.version import Version

versions = ["6.2", "2028.0", "5.2.17", "2028.1", "6.1.2", "2029.0"]

# 文字列として並べると、先頭の文字で比べてしまう
print(sorted(versions))

# 版番号として並べると、数値の大きさで比べる
print(sorted(versions, key=Version))

手元のPython 3.11で実行した結果です。packagingは、pipの内部でも使われている版番号を扱うライブラリです。

['2028.0', '2028.1', '2029.0', '5.2.17', '6.1.2', '6.2']
['5.2.17', '6.1.2', '6.2', '2028.0', '2028.1', '2029.0']

文字列のまま並べると、2028.0が5.2.17より前に来てしまいます。版番号として比べれば、6.2の次に2028.0がきちんと並びました。

私は10年ほどエンジニアとして開発に関わってきましたが、版番号を文字列のまま比べて、10.0を9.0より古いと判定してしまうバグを見たことがあります。版番号は文字列ではなく専用の道具で比べるのが鉄則です。

どの版も3年間サポートされる

これまでのDjangoには、長期サポート版、いわゆるLTSと、そうでない版の2種類がありました。LTS以外の版はサポート期間が短く、本番で使うならLTSを選ぶのが定番でした。

DEP 20では、この区別をなくします。すべての版が、これまでのLTSと同じ3年間のサポートを受けられるようになります。

3年間の中身は、次のように2段階に分かれています。

期間 呼び方 直してもらえるもの
1年目 通常サポート セキュリティ問題、データ消失、クラッシュ、新機能の大きな不具合、以前の版からの退行
2〜3年目 延長サポート セキュリティ問題とデータ消失のみ

厳密には、サポート期間は公開から35か月です。毎年12月に、その年の版が延長サポートへ移り、3年前の版がサポート終了を迎えます。

この仕組みだと、どの時点でもおおむね3つの版がサポートされている状態になります。どの版を選んでも、慌てて乗り換える必要がないのは嬉しいですね。

今あるLTSはどうなるのか

切り替えの時期に気になるのが、今使われているLTSの扱いです。DEP 20は、5.2 LTSと6.2 LTSは約束どおりのサポート期間をそのまま受けられると明記しています。

6.2 LTSは2027年4月に公開される予定の版です。2028.0以降の新しい版と並んでセキュリティ修正を受け続け、サポートは2030年4月まで続きます。

なぜ年1回にするのか

DEP 20は、いちばんの理由をPythonとの足並みだと説明しています。Python本体は、3.9から毎年10月に新バージョンを出す年1回のリズムになっています。

Pythonのバージョンの一生については、昨日の記事でも詳しく取り上げました。【関連記事】Python 3.15の正式版は10月9日に延期、3.10はサポート終了へ

Djangoの8か月ごとの周期は、このPythonの1年周期とうまく噛み合っていませんでした。年1回にそろえることで、どのDjangoがどのPythonに対応するのかが読みやすくなります。

DEP 20によると、各版は公開時点で3つのPythonバージョンに対応します。さらに通常サポート中の版は、その年の10月に出たPythonの新バージョンにも修正版で対応します。

もう1つの理由が、LTSとLTSの間の空白をなくすことです。すべての版を3年サポートにすれば、どの版を選んでも同じ安心感が得られます。

機能の廃止はどう進むのか

新しい仕組みでも、機能をいきなり消すことはありません。ある版で廃止予定になった機能は、その版と次の版で警告を出し、さらに次の版で取り除かれます。

どの版も3年サポートされるので、少なくとも2つの版の間に対応する時間があります。急に動かなくなる心配は、これまでと同じく小さく抑えられています。

9月22日に承認された運営ルールDEP 19

もう1つのニュースが、運営ルールを定めたDEP 19の承認です。Djangoの公式ブログによると、9月22日に運営委員会とDSFの理事会がそろって承認しました。

DSFはDjango Software Foundationの略で、Djangoを支える非営利団体です。運営委員会はSteering Councilと呼ばれ、技術的な方針について最終的な判断を下す役割を担います。

DEP 19では、運営委員会を5人で構成すると定めています。委員になれる条件も整理され、DSFの個人会員であること、所属する会社などを公開していることなどが求められます。

さらに、コミュニティをまとめる力やDjangoを教える経験といった資質の一覧から、3つ以上を満たすことが条件になりました。公式ブログでは、自分にも資格があると気づく人を増やし、立候補しやすくする狙いが説明されています。

学習者の生活がすぐに変わる話ではありません。ただ、大きなオープンソースがどう運営されているのかを知るよい題材になります。

学習者と実務の人がやっておきたいこと

最後に、立場ごとにやっておきたいことを整理します。年1回リリースが始まるのは2028年1月なので、今すぐ動く必要はほとんどありません。

立場 やっておきたいこと
これからDjangoを学ぶ人 今の最新版で学んでよい。基本の考え方は版番号が変わっても同じ
Djangoで趣味のアプリを作っている人 6.x系のまま進めてよい。2028年以降に新しい番号の版へ上げる
本番でLTSを使っている人 5.2 LTSは予定どおりのサポートが続く。6.2 LTSのサポートは2030年4月まで
ライブラリを作っている人 版番号の比較を文字列でしていないか確認する

Djangoと同じPythonのWebフレームワークでも、FastAPIやFlaskは仕組みも運営体制も異なります。比べてみると、Djangoの今回の決定の特徴が見えてきます。

軽量なFastAPIについては、こちらで紹介しています。【関連記事】PythonのFastAPIとは?

以前、LTSではない版を本番に入れてしまい、サポート切れに追われて何度も更新を重ねたことがあります。どの版も3年サポートになるこの変更は、現場の担当者にとって本当にありがたいものです。

まとめ

Djangoは2028年1月から年1回のリリースになり、版番号は2028.0のように年を表す形に変わります。すべての版が3年間サポートされ、LTSとそれ以外という区別はなくなります。

9月22日には運営ルールのDEP 19も承認され、Djangoの開発体制は新しい形へ移りつつあります。学習中の方は、今の版で安心して学び続けてください。

次にDjangoの版番号を見かけたら、それが年を表しているのか、従来の番号なのかに注目してみてください。ニュースの見え方が少し変わるはずです。

ここまでお読みいただきありがとうございました。

参考情報

次のアクション

記事で学んだ内容を実際に動かしてみよう

Python WebAcademyでは、ブラウザ上でコードを書きながら基礎から実践まで体系的に学べます。

Python WebAcademyの学習画面

あわせて読む

関連記事

ブログ一覧へ

Python学習ロードマップ

まずはこの3講座から

記事で気になったテーマを、順番に手を動かしながら学べます。

ロードマップを見る