Репозиторий исходного кода Django

При развертывании приложения Django в реальной производственной среде вы почти всегда захотите использовать официальный пакетный выпуск Django .

Однако, если вы хотите опробовать код из будущего выпуска, находящийся в стадии разработки, или внести свой вклад в разработку Django, вам необходимо получить клон репозитория исходного кода Django.

В этом документе рассказывается о том, как устроен репозиторий кода, а также о том, как работать с ним и находить в нем что-то.

Общий обзор

Репозиторий исходного кода Django использует Git для отслеживания изменений кода с течением времени, поэтому вам понадобится копия клиента Git (называемая программа git) на вашем компьютере, и вы захотите ознакомиться с основами того, как Git работает.

Веб-сайт Git предлагает загрузки для различных операционных систем. Сайт также содержит огромное количество документации .

Репозиторий Django Git находится в сети по адресу github.com/django/django . Он содержит полный исходный код всех выпусков Django, который вы можете просмотреть в Интернете.

Репозиторий Git включает несколько веток :

  • mainсодержит основной код, находящийся в разработке, который станет следующим пакетным выпуском Django. Именно здесь сосредоточена основная деятельность по разработке.
  • stable/A.B.x- это ветки, в которых происходит работа по подготовке релиза. Они также используются для исправлений ошибок и выпусков безопасности, которые происходят по мере необходимости после первоначального выпуска версии функции.

Репозиторий Git также содержит теги . Это точные ревизии, из которых были созданы упакованные выпуски Django, начиная с версии 1.0.

Ряд тегов также существует под archive/префиксом для заархивированной работы .

Исходный код веб- сайта Djangoproject.com можно найти по адресу github.com/django/djangoproject.com .

Основная ветка

Если вы хотите опробовать код в разработке для следующего выпуска Django, или если вы хотите внести свой вклад в Django, исправляя ошибки или разрабатывая новые функции, вам нужно получить код из основной ветки. .

Примечание

До марта 2021 года назывался основной филиал master.

Обратите внимание, что это получит весь Django: в дополнение к djangoмодулю верхнего уровня, содержащему код Python, вы также получите копию документации Django, набор тестов, сценарии упаковки и другие разные биты. Код Django будет представлен в вашем клоне в виде каталога с именем django.

Чтобы опробовать код, находящийся в стадии разработки, с вашими собственными приложениями, поместите каталог, содержащий ваш клон, на путь импорта Python. Тогда import операторы, которые ищут Django, найдут 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веток была принята, начиная с цикла выпуска Django 1.5.

Раньше эти ветки не создавались до тех пор, пока не были выпущены релизы, и в основной ветке репозитория не проводились работы по стабилизации. Таким образом, никакая работа по разработке новых функций для следующего выпуска Django не может быть завершена до тех пор, пока не будет выпущен последний выпуск.

Например, вскоре после выпуска Django 1.3 ветка stable/1.3.xбыла создана. Официальная поддержка этого выпуска истекла, поэтому он больше не получает прямого обслуживания от проекта Django. Однако эта и все другие ветки с аналогичными названиями продолжают существовать, и заинтересованные члены сообщества время от времени использовали их для обеспечения неофициальной поддержки старых выпусков Django.

Теги

Каждый выпуск Django помечен и подписан выпускающим.

Теги можно найти на странице тегов GitHub .

Архивные работы по разработке функций

Историческая справка

Поскольку Django перешел на Git в 2012 году, любой может клонировать репозиторий и создавать свои собственные ветки, что устраняет необходимость в официальных ветках в репозитории исходного кода.

Следующий раздел в основном полезен, если вы изучаете историю репозитория, например, если вы пытаетесь понять, как были разработаны некоторые функции.

Ветви разработки функций по своей природе имеют тенденцию быть временными. Некоторые создают успешные функции, которые снова объединяются в основную ветку Django, чтобы стать частью официального выпуска, но другие этого не делают; в любом случае наступает время, когда над веткой больше не ведется активная работа со стороны какого-либо разработчика. На данный момент филиал считается закрытым.

Раньше Django поддерживался системой контроля версий Subversion, в которой нет стандартного способа указать это. В качестве обходного пути ветки Django, которые закрыты и больше не обслуживаются, были перемещены в attic.

Под archive/префиксом существует ряд тегов для поддержки ссылки на эту и другие работы, представляющие исторический интерес.

Следующие теги под archive/attic/префиксом ссылаются на кончики веток, код которых в конечном итоге стал частью самого Django:

  • boulder-oracle-sprint: Добавлена ​​поддержка баз данных Oracle в объектно-реляционный преобразователь Django. Это было частью Django с момента выпуска 1.0.
  • gis: Добавлена ​​поддержка географических / пространственных запросов в объектно-реляционный картограф Django. Это было частью Django с момента выпуска 1.0 в виде связанного приложения django.contrib.gis.
  • i18n: Добавлена поддержка интернационализации в Django. Это было частью Django с момента выпуска 0.90.
  • magic-removal: Существенный рефакторинг как внутренних, так и общедоступных API объектно-реляционного картографа Django. Это было частью Django с момента выпуска 0.95.
  • multi-auth: Рефакторинг интегрированной платформы аутентификации Django, которая добавила поддержку бэкэндов аутентификации . Это было частью Django с момента выпуска 0.95.
  • new-admin: Рефакторинг связанного административного приложения Django . Он стал частью Django с версии 0.91, но был заменен другим рефакторингом (см. Следующий листинг) до выпуска Django 1.0.
  • newforms-admin: Второй рефакторинг связанного административного приложения Django. Он стал частью Django начиная с версии 1.0 и является основой текущего воплощения django.contrib.admin.
  • queryset-refactor: Рефакторинг внутреннего устройства объектно-реляционного картографа Django. Это стало частью Django с выпуском 1.0.
  • unicode: Реорганизация внутреннего устройства Django для последовательного использования строк на основе Unicode в большинстве мест в приложениях Django и Django. Это стало частью Django с выпуском 1.0.

Кроме того, следующие теги под archive/attic/префиксом ссылаются на кончики веток, которые были закрыты, но код которых не был объединен с Django, а функции, которые они намеревались реализовать, так и не были завершены:

  • full-history
  • generic-auth
  • multiple-db-support
  • per-object-permissions
  • schema-evolution
  • schema-evolution-ng
  • search-api
  • sqlalchemy

Наконец, под archive/префиксом репозиторий содержит soc20XX/<project>теги, относящиеся к кончикам ветвей, которые использовались студентами, которые работали над Django во время программ Google Summer of Code 2009 и 2010 годов.

Copyright ©2021 All rights reserved