Djangoソースコードリポジトリ
Djangoアプリケーションを実際の本番環境にデプロイするときは、ほとんどの場合、 Djangoの公式パッケージリリースを使用することをお勧めします。
ただし、今後のリリースから開発中のコードを試したり、Djangoの開発に貢献したりする場合は、Djangoのソースコードリポジトリのクローンを取得する必要があります。
このドキュメントでは、コードリポジトリのレイアウト方法と、その中の物を操作して見つける方法について説明します。
高レベルの概要
Djangoソースコードリポジトリは Git を使用して時間の経過に伴うコードの変更を追跡するため、コンピューターにGitクライアント(git
と呼ばれるプログラム)のコピーが必要です。 Gitがどのように機能するかの基本を理解したいと思うでしょう。
GitのWebサイトでは、さまざまなオペレーティングシステムのダウンロードを提供しています。 このサイトには、膨大な量のドキュメントも含まれています。
Django Gitリポジトリは、オンラインの github.com/django/djangoにあります。 これには、オンラインで閲覧できるすべてのDjangoリリースの完全なソースコードが含まれています。
Gitリポジトリには、いくつかのブランチが含まれています。
main
には、Djangoの次のパッケージリリースとなる主要な開発中のコードが含まれています。 これは、ほとんどの開発活動が焦点を当てているところです。stable/A.B.x
は、リリース準備作業が行われるブランチです。 また、機能バージョンの最初のリリース後に必要に応じて発生するバグ修正およびセキュリティリリースにも使用されます。
Gitリポジトリにはタグも含まれています。 これらは、バージョン1.0以降、パッケージ化されたDjangoリリースが作成された正確なリビジョンです。
アーカイブされた作品のarchive/
プレフィックスの下にも多数のタグが存在します。
Djangoproject.com Webサイトのソースコードは、 github.com/django/djangoproject.comにあります。
本店
Djangoの次のリリースで開発中のコードを試してみたい場合、またはバグの修正や新機能の開発によってDjangoに貢献したい場合は、メインブランチからコードを入手することをお勧めします。 。
ノート
2021年3月以前は、メインブランチはmaster
と呼ばれていました。
これにより、Djangoの all が取得されることに注意してください。Pythonコードを含むトップレベルのdjango
モジュールに加えて、Djangoのドキュメント、テストスイート、パッケージスクリプト、およびその他の雑多なビット。 Djangoのコードは、django
という名前のディレクトリとしてクローンに存在します。
独自のアプリケーションで開発中のコードを試すには、クローンを含むディレクトリをPythonインポートパスに配置します。 次に、Djangoを検索するimport
ステートメントは、クローン内のdjango
モジュールを検索します。
Djangoのコードに取り組んでいる場合(たとえば、バグを修正したり、新しい機能を開発したりする場合)、ここで読むのをやめて、 Djangoに貢献するためのドキュメントに進むことができます。推奨されるコーディングスタイルや、パッチを生成して送信する方法などです。
安定した枝
Djangoはブランチを使用してDjangoのリリースの準備をします。 各メジャーリリースシリーズには、独自の安定したブランチがあります。
これらのブランチはstable/A.B.x
ブランチとしてリポジトリにあり、最初のアルファがタグ付けされた直後に作成されます。
たとえば、 Django 1.5 alpha 1 がタグ付けされた直後に、ブランチstable/1.5.x
が作成され、最終的な1.5リリースのコードを準備するためのすべての作業がそこで行われました。
これらのブランチは、サポートされているバージョンで説明されているように、バグ修正とセキュリティサポートも提供します。
たとえば、Django 1.5のリリース後、ブランチstable/1.5.x
はセキュリティと重大な安定性のバグの修正のみを受け取り、最終的にはDjango 1.5.1などとしてリリースされ、stable/1.4.x
はセキュリティのみを受け取ります。およびデータ損失が修正され、stable/1.3.x
は更新を受信しなくなりました。
履歴情報
stable/A.B.x
ブランチを処理するためのこのポリシーは、Django1.5リリースサイクルから採用されました。
以前は、これらのブランチはリリースの直後まで作成されず、メインリポジトリブランチで安定化作業が行われました。 したがって、Djangoの次のリリースの新機能開発作業は、最終リリースが行われるまでコミットできませんでした。
たとえば、Django 1.3のリリース直後に、ブランチstable/1.3.x
が作成されました。 そのリリースの公式サポートは期限切れになっているため、Djangoプロジェクトから直接メンテナンスを受けることはなくなりました。 ただし、それと他のすべての同様の名前のブランチは引き続き存在し、関心のあるコミュニティメンバーは、古いDjangoリリースの非公式サポートを提供するためにそれらを使用することがあります。
タグ
各Djangoリリースは、リリース担当者によってタグ付けおよび署名されています。
タグはGitHubのタグページにあります。
アーカイブされた機能開発作業
履歴情報
Djangoが2012年にGitに移行して以来、誰でもリポジトリのクローンを作成して独自のブランチを作成できるため、ソースコードリポジトリに公式のブランチを作成する必要がなくなります。
次のセクションは、リポジトリの履歴を調べている場合、たとえば、一部の機能がどのように設計されているかを理解しようとしている場合に最も役立ちます。
機能開発ブランチは、その性質上、一時的なものになる傾向があります。 いくつかは成功した機能を生成し、それらはDjangoのメインブランチにマージされて公式リリースの一部になりますが、そうでないものもあります。 いずれの場合も、ブランチが開発者によって積極的に作業されなくなったときが来ます。 この時点で、ブランチは閉じていると見なされます。
Djangoは、Subversionリビジョン管理システムで維持されていましたが、これを示す標準的な方法はありません。 回避策として、閉じられてメンテナンスされなくなったDjangoのブランチがattic
に移動されました。
archive/
プレフィックスの下には、これや他の歴史的に興味深い作品への参照を維持するためのタグがいくつかあります。
archive/attic/
プレフィックスの下にある次のタグは、コードが最終的にDjango自体の一部になったブランチの先端を参照します。
boulder-oracle-sprint
:DjangoのオブジェクトリレーショナルマッパーにOracleデータベースのサポートを追加しました。 これは、1.0リリース以降Djangoの一部です。gis
:Djangoのオブジェクトリレーショナルマッパーに地理的/空間的クエリのサポートを追加しました。 これは、バンドルされたアプリケーションdjango.contrib.gis
として、1.0リリース以降Djangoの一部となっています。i18n
:国際化サポートをDjangoに追加しました。 これは、0.90リリース以降Djangoの一部です。magic-removal
:Djangoのオブジェクトリレーショナルマッパーの内部APIとパブリックAPIの両方の主要なリファクタリング。 これは、0.95リリース以降Djangoの一部です。multi-auth
:認証バックエンドのサポートを追加した Djangoのバンドル認証フレームワークのリファクタリング。 これは、0.95リリース以降Djangoの一部です。new-admin
: Djangoのバンドルされた管理アプリケーションのリファクタリング。 これは0.91リリースの時点でDjangoの一部になりましたが、Django 1.0リリースの前に別のリファクタリング(次のリストを参照)に取って代わられました。newforms-admin
:Djangoのバンドルされた管理アプリケーションの2番目のリファクタリング。 これは1.0リリースの時点でDjangoの一部になり、django.contrib.admin
の現在の化身の基礎となっています。queryset-refactor
:Djangoのオブジェクトリレーショナルマッパーの内部のリファクタリング。 これは、1.0リリースの時点でDjangoの一部になりました。unicode
:DjangoおよびDjangoアプリケーション内のほとんどの場所でUnicodeベースの文字列を一貫して使用するためのDjangoの内部のリファクタリング。 これは、1.0リリースの時点でDjangoの一部になりました。
さらに、archive/attic/
プレフィックスの下にある次のタグは、閉じられたが、コードがDjangoにマージされておらず、実装を目的とした機能が完了していないブランチのヒントを参照しています。
full-history
generic-auth
multiple-db-support
per-object-permissions
schema-evolution
schema-evolution-ng
search-api
sqlalchemy
最後に、archive/
プレフィックスの下に、リポジトリには、2009年と2010年のGoogle Summer ofCodeプログラムでDjangoに取り組んだ学生が使用したブランチの先端を参照するsoc20XX/<project>
タグが含まれています。