Статьи

Разработка ядра Python: как отправить патч

Как я уже упоминал в моей прошлой статье, я решил, что попытаюсь найти что-то, что я мог бы исправить в Python, и отправить его. Во время написания другой статьи я наткнулся на небольшую ошибку в руководстве по Python в разделе Windows . Хотя патчить какую-то документацию не так круто, как я думаю, это было бы патчем для Python, но я думаю, что для меня это уместно, поскольку в последнее время я стараюсь предоставлять больше документации, чем что-либо еще. Итак, я собираюсь объяснить процесс, как я его нашел.

Начиная

Прежде всего, вам необходимо получить учетную запись в Bug Tracker для Python. Если вы надеетесь стать разработчиком ядра, вам нужно убедиться, что ваше имя пользователя соответствует их рекомендациям, которые очень просты:

firstname.lastname

Получив это, вы можете начать искать что-то для исправления. Есть ссылка «Легкие вопросы», которая является хорошей отправной точкой. Вы также можете выполнить поиск компонента, который вы компетентны в использовании, и посмотреть, есть ли там какие-то ошибки, которые, по вашему мнению, вы можете исправить. Как только вы найдете что-то, вам нужно убедиться, что вы обновили локальный репозиторий, а затем прочитали страницу патча devguide
.

Создание патча

Предполагая, что у вас есть необходимый репозиторий на локальном компьютере, все, что вам нужно сделать, это отредактировать соответствующий файл. В моем случае мне пришлось проверить devguide (о котором вы можете прочитать здесь ) и отредактировать файл setup.rst . Если вы редактируете код Python, вам нужно будет соответствовать PEP8. После того, как я закончил редактирование файла, я сохранил свои изменения и затем использовал Mercurial для создания патча. Вот команда, которую я использовал согласно инструкциям патча Python .

hg diff > setup.patch

And here is the contents of that patch file:


diff -r b1c1d15271c0 setup.rst
--- a/setup.rst Tue May 22 00:33:42 2012 +0200
+++ b/setup.rst Tue May 22 13:55:09 2012 -0500
@@ -173,7 +173,7 @@
To build from the Visual Studio GUI, open pcbuild.sln to load the project
files and choose the Build Solution option from the Build menu, often
associated with the F7 key. Make sure you have chosen the "Debug" option from
-the build configuration drop-down first.
+the configuration toolbar drop-down first.

После сборки вы можете установить Python в качестве запускаемого проекта. Нажмите клавишу F5 в
Visual Studio или выберите «Начать отладку» в меню «Отладка», чтобы запустить

Теперь, когда у нас есть патч, нам нужно отправить его!

Отправка патча

Положи свои щиты, мы идем! Представление патча немного утомительно. Что люди подумают о тебе? Я подозреваю, что если вы планируете работать над чем-то большим, то вам лучше начать расти толстую кожу. В моем случае я собираюсь представить действительно простое исправление опечатки, так что я надеюсь, что такие вещи не являются пламенными. Опять же, это мой первый патч, поэтому я могу отправить его совершенно ошибочно. Так как мой патч будет для чего-то (предположительно) нового, я сделал быстрый поиск, чтобы убедиться, что о нем еще не сообщалось. Ничего не видя, я нажал на ссылку «Создать новый» с некоторым трепетом и выбрал «девгуид» в качестве моего компонента. Я также выбрал последнюю версию Python. Я не вижу ничего в devguide, который говорит, что это применимо только к одному набору версий Python, поэтому я просто оставлю это на этом.Я на самом деле не видел «тип», который подходит для редактирования, поэтому я оставил это поле пустым, чтобы мои игроки могли исправить. Наконец, я прикрепил файл патча к заявке на ошибку. Вы можете увидеть мой билет на ошибкуздесь, если хотите.

При внесении исправления в Python, вы должны заполнить форму соглашения с разработчиком, которая позволяет Python Software Foundation лицензировать ваш код для использования с Python, в то время как вы сохраняете авторские права. Да, вы тоже можете прославиться только написанием кода на Python! Предполагая, что люди читают источник или эти страницы подтверждения.

Завершение

Я не знаю, что случится с моим довольно неудачным вкладом. Может быть, это будет принято, а может и нет. Но я думаю, что потрачу некоторое время, пытаясь выяснить некоторые другие ошибки и просто посмотреть, смогу ли я чем-нибудь помочь сообществу Python. Не стесняйтесь присоединиться ко мне в этом приключении!