Выпуск версии
Как подготовить выпуск
Этот файл предоставляет обзор того, что необходимо для создания бинарных выпусков NumPy.
Текущая информация о сборке и выпуске
Текущая информация о сборке и выпуске NumPy и SciPy разбросана по нескольким местам. Она должна быть обобщена в одном месте, обновлена и, при необходимости, описана более подробно. Разделы ниже перечисляют все места, где можно найти полезную информацию.
Дерево исходных кодов
- INSTALL.rst.txt
- release.sh
- pavement.py
Документация NumPy
- https://github.com/numpy/numpy/blob/master/doc/HOWTO_RELEASE.rst.txt
- http://projects.scipy.org/numpy/wiki/MicrosoftToolchainSupport (ссылка неактивна)
Wiki SciPy.org
- https://www.scipy.org/Installing_SciPy и ссылки на этой странице.
- http://new.scipy.org/building/windows.html (ссылка неактивна)
Wiki документации
- http://docs.scipy.org/numpy/docs/numpy-docs/user/install.rst/ (ссылка неактивна)
Сценарии выпуска
Поддерживаемые платформы и версии
NEP 29 описывает поддерживаемые версии Python; в первой половине 2020 года это будет Python >= 3.6. Мы тестируем NumPy со всеми этими версиями каждый раз при слиянии кода в ветку master. Бинарные установщики могут быть доступны для подмножества этих версий (см. ниже).
OS X
Поддерживаются версии OS X >= 10.9, информация о поддержке версий Python содержится в NEP 29. Мы собираем бинарные пакеты wheel для OSX, совместимые с Python с сайта python.org, системным Python, homebrew и macports - см. этот обзор сборки OSX wheel для получения подробной информации.
Windows
Мы собираем 32- и 64-битные пакеты wheel на Windows. Поддерживаются Windows 7, 8 и 10. Мы собираем NumPy, используя инструментарий mingw-w64 на Appveyor.
Linux
Мы собираем и предоставляем пакеты manylinux1 wheel для NumPy. Многие дистрибутивы Linux включают свои собственные бинарные сборки NumPy.
BSD / Solaris
Бинарные пакеты не предоставляются, но были сообщения об успешной сборке на Solaris и BSD.
Инструментарий
Мы собираем все наши пакеты wheel на облачных ресурсах, поэтому этот список компиляторов предназначен для справки и отладки локальных сборок. См. скрипты .travis.yml и appveyor.yml в репозитории numpy wheels для получения окончательной информации о рецептах сборки. Пакеты, доступные через pip, отмечены.
Компиляторы
На каждой платформе используется та же версия gcc, что и при сборке самого Python. На данный момент это означает:
- Сборки OS X на travis в настоящее время используют
clang. Похоже, что бинарные пакеты wheel для OSX >= 10.6 можно безопасно собрать с виртуальных машин travis-ci OS X 10.9 при сборке с Python из установочных пакетов с сайта python.org; - Сборки Windows используют инструментарий mingw-w64;
- Пакеты manylinux1 wheel используют gcc, предоставленный в образах контейнеров Manylinux.
Для сборки бинарных файлов вам потребуется Cython. Cython компилирует файлы .pyx в распределении NumPy в файлы .c.
OpenBLAS
Все пакеты wheel ссылаются на версию OpenBLAS, предоставленную через репозиторий openblas-libs. Объектный файл (или DLL) поставляется вместе с пакетом wheel, переименованный для предотвращения конфликтов имен с другими объектами OpenBLAS, которые могут существовать в файловой системе.
Сборка исходных архивов и пакетов wheel
Для запуска сборки пакетов wheel вам потребуются права записи в numpy-wheels.
- Python(ы) с сайта python.org или дистрибутива Linux.
- cython (pip)
- virtualenv (pip)
- Paver (pip)
- pandoc pandoc.org или дистрибутив Linux.
- numpy-wheels https://github.com/MacPython/numpy-wheels (клонировать)
Сборка документации
Для сборки документов требуется ряд файлов latex .sty. Установите их все, чтобы избежать проблем.
- Sphinx (pip)
- numpydoc (pip)
- Matplotlib
- Texlive (или MikTeX на Windows)
Загрузка на PyPI
- terryfy https://github.com/MacPython/terryfy (клонировать).
- beautifulsoup4 (pip)
- delocate (pip)
- auditwheel (pip)
- twine (pip)
Генерация списков авторов/PR
Вам потребуется токен доступа для личного использования https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/, чтобы скрипты могли получить доступ к репозиторию NumPy на github.
- gitpython (pip)
- pygithub (pip)
Virtualenv
Virtualenv — очень полезный инструмент для работы с несколькими версиями пакетов. Он также используется в скрипте Paver для сборки документации.
Что выпущено
Пакеты wheel
В настоящее время мы поддерживаем Python 3.6-3.8 на Windows, OSX и Linux
- Windows: 32-битные и 64-битные пакеты wheel, собранные с помощью Appveyor;
- OSX: x64_86 пакеты wheel для OSX, собранные с помощью travis-ci;
- Linux: 32-битные и 64-битные пакеты manylinux1 wheel, собранные с помощью travis-ci.
Дополнительные подробности см. в репозитории сборки numpy wheels.
Другие
- Заметки к выпуску
- Журнал изменений
Исходное распределение
Мы собираем исходные выпуски в форматах .zip и .tar.gz.
Процесс выпуска
Согласуйте график выпуска
Типичный график выпуска включает одну бета-версию, две версии кандидатов на выпуск и окончательный выпуск. Лучше всего сначала обсудить сроки на почтовой рассылке, чтобы люди могли своевременно внести свои изменения, объединить правки в wiki документации и т. д. После того, как дата будет определена, создайте новую ветку maintenance/x.y.z, добавьте новые пустые заметки к выпуску для следующей версии в ветке master и обновите этапы Trac Milestones.
Убедитесь, что текущая ветка правильно собирает пакет
git clean -fxd python setup.py bdist python setup.py sdist
Для фактической сборки бинарных файлов после корректной настройки можно использовать скрипт release.sh. Для получения подробной информации о самом процессе сборки, лучше всего прочитать скрипт pavement.py.
Примечание
Следующие шаги повторяются для бета-версии(й), кандидатов на выпуск(ов) и окончательного выпуска.
Проверьте устаревшие функции
Перед созданием ветки выпуска необходимо проверить, что весь устаревший код, который должен быть удален, действительно удален, и все новые устаревшие функции указывают в строке документации или предупреждении об устаревании, на какой версии код будет удалён.
Проверьте номер версии C API
Номер версии C API необходимо отслеживать в трех местах
- numpy/core/setup_common.py
- numpy/core/code_generators/cversions.txt
- numpy/core/include/numpy/numpyconfig.h
Процесс состоит из трех этапов.
- Если API изменился, увеличьте C_API_VERSION в setup_common.py. API не изменился только в том случае, если любой код, скомпилированный с использованием текущего API, будет обратной совместимостью с последней выпущенной версией NumPy. Любые изменения в структурах C или добавления в публичный интерфейс сделают новый API не обратной совместимостью.
-
Если C_API_VERSION на первом шаге изменился или если хеш API изменился, необходимо обновить файл cversions.txt. Чтобы проверить хеш, запустите скрипт numpy/core/cversions.py и запишите хеш API, который будет выведен. Если этот хеш не совпадает с последним хешем в numpy/core/code_generators/cversions.txt, хеш изменился. Используя соответствующий C_API_VERSION и хеш, добавьте новую запись в cversions.txt. Если версия API не изменилась, но хеш отличается, вам нужно будет прокомментировать предыдущую запись для этой версии API. Например, в NumPy 1.9 были добавлены аннотации, что изменило хеш, но API был таким же, как и в 1.8. Хеш служит для проверки изменений API, но не является окончательным.
Если шаги 1 и 2 выполнены правильно, компиляция выпуска не должна выдавать предупреждение «Обнаружен несовпадение API в начале сборки».
- В файле numpy/core/include/numpy/numpyconfig.h потребуется новая макро-команда NPY_X_Y_API_VERSION, где X и Y — номер основной и дополнительной версии выпуска. Значение этой макро-команды необходимо увеличивать только от предыдущей версии, если некоторые функции или макросы в файлах include были устаревшими.
Номер версии C ABI в numpy/core/setup_common.py следует обновлять только для выпуска новой основной версии.
Проверка заметок к выпуску
Используйте towncrier для создания заметок к выпуску и коммита изменений. Это удалит все фрагменты из doc/release/upcoming_changes и добавит doc/release/<version>-note.rst. Обратите внимание, что в настоящее время towncrier необходимо установить из основной ветки, так как последняя версия (19.2.0) устарела.
towncrier –version “<version>” git commit -m”Создать заметки к релизу”
Проверьте, что заметки к выпуску актуальны.
Обновите заметки к выпуску с разделом «Основные моменты». Укажите некоторые из следующих пунктов:
- новые основные функции
- устаревшие и удаленные функции
- поддерживаемые версии Python
- для SciPy, поддерживаемые версии NumPy
- перспективы ближайшего будущего
Обновите статус выпуска и создайте тег выпуска
Определите хэш коммита релиза, например 1b2e1d63ff.
- ::
-
git co 1b2e1d63ff # выдаёт предупреждение о detached head
Сначала измените/проверьте следующие переменные в pavement.py в зависимости от версии релиза:
RELEASE_NOTES = 'doc/release/1.7.0-notes.rst' LOG_START = 'v1.6.0' LOG_END = 'maintenance/1.7.x'
Произведите любые другие изменения. Когда вы будете готовы к релизу, выполните следующие действия:
diff --git a/setup.py b/setup.py index b1f53e3..8b36dbe 100755 --- a/setup.py +++ b/setup.py @@ -57,7 +57,7 @@ PLATFORMS = ["Windows", "Linux", "Solaris", "Mac OS- MAJOR = 1 MINOR = 7 MICRO = 0 -ISRELEASED = False +ISRELEASED = True VERSION = '%d.%d.%drc1' % (MAJOR, MINOR, MICRO) # Return the git revision as a string
И убедитесь, что переменная VERSION установлена правильно.
Теперь вы можете сделать коммит и тэг релиза. Рекомендуется не отправлять коммит или тэг сразу, на случай, если потребуется дополнительная очистка. Мы предпочитаем отложить отправку тэга до тех пор, пока мы не уверены, что это точный вид выпущенного кода (см.: Отправка тэга и коммита релиза):
git commit -s -m “REL: Release.” setup.py git tag -s <version>
Флаг -s создаёт подписанный PGP (обычно GPG) тэг. Пожалуйста, подписывайте тэги релизов.
Тэг релиза должен содержать номер релиза в аннотации (сообщении тэга). К сожалению, имя тэга можно изменить без нарушения подписи, но содержимое сообщения нельзя.
См.: https://github.com/scipy/scipy/issues/4919 для обсуждения подписания тэгов релизов и https://keyring.debian.org/creating-key.html для инструкций по созданию ключа GPG, если у вас его нет.
Чтобы ваш ключ был легче идентифицировать как ваш, рассмотрите возможность отправки вашего ключа на публичные сервера ключей, используя команду, такую как:
gpg --send-keys <yourkeyid>
Обновление версии ветки master
Увеличьте номер релиза в setup.py. Кандидаты на релиз должны иметь «rc1» (или «rc2», «rcN») добавленным к формату X.Y.Z.
Также создайте новый хэш версии в cversions.txt и соответствующее определение версии NPY_x_y_API_VERSION в numpyconfig.h
Триггер сборки wheel
См. репозиторий MacPython/numpy wheels.
В этом репозитории отредактируйте файлы:
azure/posix.yml-
azure/windows.yml.
В обоих случаях установите переменную BUILD_COMMIT на текущий тэг релиза — например, v1.19.0:
$ gvim azure/posix.yml azure/windows.yml $ git commit -a $ git push upstream HEAD
Убедитесь, что тэг релиза был отправлен.
Запустите сборку, отправив коммит ваших правок в репозиторий. Обратите внимание, что вы можете сделать это на ветке, но её необходимо отправить в родительский репозиторий MacPython/numpy-wheels для запуска загрузки, так как только этот репозиторий имеет соответствующие токены для разрешения загрузки.
Собраные wheel-файлы появятся по адресу https://anaconda.org/multibuild-wheels-staging/numpy
Выполнение релиза
Сгенерируйте changelog и заметки для загрузки с помощью:
paver write_release
Сборка и архивирование документации
Выполните:
cd doc/ make dist
чтобы проверить, что документация находится в состоянии, пригодном для сборки. Затем, после добавления тэга, создайте архив документации в репозитории numpy/doc:
# This checks out github.com/numpy/doc and adds (``git add``) the # documentation to the checked out repo. make merge-doc # Now edit the ``index.html`` file in the repo to reflect the new content, # and commit the changes git -C build/merge commit -am "Add documentation for <version>" # Push to numpy/doc repo git -C build/merge push
Обновление PyPI
Файлы wheel и исходный код должны быть загружены на PyPI.
Сначала загружайте файлы wheel, а затем файлы исходного кода, чтобы убедиться, что пользователи pip не случайно получат установку исходного кода, ожидая бинарного wheel-пакета.
Вы можете сделать это автоматически, используя скрипт wheel-uploader из https://github.com/MacPython/terryfy. Вот рекомендуемая команда для загрузки всех wheel-файлов для Windows, Manylinux, OSX и загрузки их на PyPI.
NPY_WHLS=~/wheelhouse # local directory to cache wheel downloads CDN_URL=https://anaconda.org/multibuild-wheels-staging/numpy/files wheel-uploader -u $CDN_URL -w $NPY_WHLS -v -s -t win numpy 1.11.1rc1 wheel-uploader -u $CDN_URL -w warehouse -v -s -t macosx numpy 1.11.1rc1 wheel-uploader -u $CDN_URL -w warehouse -v -s -t manylinux1 numpy 1.11.1rc1
Флаг -v даёт подробную обратную связь, -s заставляет скрипт подписывать wheel-файлы вашим ключом GPG перед загрузкой. Не забудьте загрузить wheel-файлы перед исходным tar-архивом, чтобы не возникало периодов, в течение которых люди переходят от ожидаемой бинарной установки к установке исходного кода с PyPI.
Существует два способа обновления исходного релиза на PyPI, первый:
$ git clean -fxd # to be safe $ python setup.py sdist --formats=gztar,zip # to check # python setup.py sdist --formats=gztar,zip upload --sign
Это затребует пароль к вашему ключу PGP для подписи сгенерированных исходных пакетов.
Второй способ — загрузить файл PKG_INFO внутри каталога sdist через веб-интерфейс PyPI. Исходный tar-архив также может быть загружен через этот интерфейс.
Отправка тэга и коммита релиза
Наконец, убедившись, что этот тэг правильно определяет выпущенный исходный код, вы можете отправить тэг и коммит релиза в github:
git push # Push release commit git push upstream <version> # Push tag named <version>
где upstream указывает на основной репозиторий https://github.com/numpy/numpy.git.
Обновление scipy.org
Заявление о релизе с ссылкой на сайт загрузки должно быть размещено в боковой панели главной страницы scipy.org.
Обновление scipy.org должно быть представлено как PR в https://github.com/scipy/scipy.org. Файл, который нужно изменить, www/index.rst. Найдите News.
Объявление на списках рассылки
О релизе следует объявить на списках рассылки NumPy и SciPy, а также на python-announce, возможно, также на списках рассылки Matplotlib, IPython и/или Pygame.
Во время этапа бета/RC необходимо опубликовать на списках рассылки явное требование тестировать бинарные файлы с несколькими другими библиотеками (SciPy/Matplotlib/Pygame).
Объявление в Linux Weekly News
Отправьте электронное письмо редактору LWN, чтобы сообщить им о релизе. Инструкции по адресу: https://lwn.net/op/FAQ.lwn#contact
После финального релиза
После объявления финального релиза остаются несколько административных задач:
- Переместить изменения из ветки релиза в заметки к релизу и скрипты релиза, если таковые имеются, в ветку master.
- Обновить этапы в Trac.
Пошаговые инструкции
Этот файл содержит пошаговое руководство по релизу NumPy 1.14.5 на Linux, изменённое для сборки на azure и загрузки на anaconda.org. Команды можно скопировать в командную строку, но обязательно замените 1.14.5 на правильную версию.
Это руководство следует читать вместе с общими инструкциями в releasing.
Пошаговый процесс релиза
Обратите внимание, что в приведённых ниже фрагментах кода upstream относится к корневому репозиторию на github, а origin — к вилке в вашей личной учётной записи. Возможно, потребуется внести коррективы, если вы не создали вилку репозитория, а только клонировали его локально. Вы также можете отредактировать .git/config и добавить upstream , если это ещё не сделано.
Обратная перенос запросов на добавление
Изменения, помеченные для этого релиза, должны быть перенесены в ветку maintenance/1.14.x.
Обновление документации релиза
Файл doc/changelog/1.14.5-changelog.rst должен быть обновлён, чтобы отразить окончательный список изменений и участников. Этот текст можно сгенерировать с помощью:
$ python tools/changelog.py $GITHUB v1.14.4..maintenance/1.14.x > doc/changelog/1.14.5-changelog.rst
где GITHUB содержит ваш токен доступа к github. Этот текст также может быть добавлен к doc/release/1.14.5-notes.rst для обновлений релиза, но не для новых релизов, таких как 1.14.0, так как списки изменений для релизов *.0 имеют тенденцию быть чрезмерно длинными. Файл doc/source/release.rst также должен быть обновлён с ссылкой на новые заметки к релизу. Эти изменения должны быть добавлены в ветку maintenance, а затем перенесены в ветку master.
Завершение заметки к релизу
Заполните заметку к релизу doc/release/1.14.5-notes.rst , указав существенные изменения.
Подготовка коммита релиза
Переключитесь на ветку для релиза, убедитесь, что она обновлена, и очистите репозиторий:
$ git checkout maintenance/1.14.x $ git pull upstream maintenance/1.14.x $ git submodule update $ git clean -xdfq
Отредактируйте pavement.py и setup.py, как подробно описано в HOWTO_RELEASE:
$ gvim pavement.py setup.py $ git commit -a -m"REL: NumPy 1.14.5 release."
Проверка:
$ python3 runtests.py -m "full"
Отправьте этот релиз непосредственно в конец ветки maintenance. Для этого требуется право записи в репозиторий numpy:
$ git push upstream maintenance/1.14.x
Пример см. в коммите 1.14.3 REL: https://github.com/numpy/numpy/commit/73299826729be58cec179b52c656adfcaefada93.
Сборка исходных релизов
Для сборки исходных релизов используется Paver. Он создаст каталоги release и release/installers и поместит исходные релизы *.zip и *.tar.gz в последний.
$ python3 -m cython --version # check for correct cython version $ paver sdist # sdist will do a git clean -xdf, so we omit that
Сборка wheel-пакетов
Запустите сборку wheel-пакетов, указав репозиторий numpy-wheels на этот коммит. Это может занять до часа. Репозиторий numpy-wheels клонирован из https://github.com/MacPython/numpy-wheels. Начните с pull, так как репозиторий может быть доступен и изменён другим пользователем, и push может завершиться ошибкой:
$ cd ../numpy-wheels $ git pull upstream master $ git branch <new version> # only when starting new numpy version $ git checkout v1.14.x # v1.14.x already existed for the 1.14.4 release
Отредактируйте файлы azure/posix.yml и azure/windows.yml , чтобы убедиться, что они содержат правильную версию, и вставьте хэш коммита для коммита REL , созданного выше для BUILD_COMMIT, см. пример:
$ gvim azure/posix.yml azure/windows.yml $ git commit -a $ git push upstream HEAD
Теперь подождите. Если вы нервничаете из-за длительности процесса — сборка может занять некоторое время — вы можете отслеживать процесс сборки, перейдя по предоставленным ссылкам на https://github.com/MacPython/numpy-wheels для проверки статуса сборки. Проверьте, что все необходимые wheel-пакеты были собраны и загружены, прежде чем продолжать. В настоящее время должно быть 21 из них на https://anaconda.org/multibuild-wheels-staging/numpy/files, 3 для Mac, 6 для Windows и 12 для Linux.
Обратите внимание, что иногда сборки, как и тесты, могут завершиться неудачно по независящим причинам, и вам потребуется перезапустить их.
Загрузка wheel-пакетов
Когда все wheel-пакеты будут успешно собраны, загрузите их, используя wheel-uploader в репозитории terryfy. Репозиторий terryfy можно клонировать из https://github.com/MacPython/terryfy, если у вас его ещё нет. Wheel-пакеты также можно загружать с помощью wheel-uploader, но мы предпочитаем загрузить все wheel-пакеты в каталог ../numpy/release/installers и загрузить их позже с помощью twine:
$ cd ../terryfy $ git pull upstream master $ CDN_URL=https://anaconda.org/multibuild-wheels-staging/numpy/files $ NPY_WHLS=../numpy/release/installers $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t win numpy 1.14.5 $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t manylinux1 numpy 1.14.5 $ ./wheel-uploader -u $CDN_URL -n -v -w $NPY_WHLS -t macosx numpy 1.14.5
Если вы делаете это часто, рассмотрите возможность добавления CDN_URL и NPY_WHLS в вашу среду по умолчанию.
Генерация файлов README
Это нужно сделать после загрузки всех установщиков, но перед обновлением файла покрытия для продолжения разработки:
$ cd ../numpy $ paver write_release
Пометить релиз
После успешной сборки и загрузки колес вернитесь в свой репозиторий numpy в ветке maintenance и пометьте REL коммит, подписав его своим ключом gpg:
$ git tag -s v1.14.5
Вы должны загрузить свой публичный ключ gpg на github, чтобы тег отображался там как «верифицированный».
Проверьте, что файлы в release/installers имеют правильные версии, затем отправьте тег в upstream:
$ git push upstream v1.14.5
Мы ждем до этого момента, чтобы отправить тег, потому что он публичный и не должен изменяться после отправки.
Сбросить ветку maintenance в состояние разработки
Добавьте еще REL коммит в ветку numpy maintenance, который сбрасывает ISREALEASED флаг в False и увеличивает счётчик версии:
$ gvim pavement.py setup.py
Создайте заметки к релизу для следующего релиза и отредактируйте их, чтобы установить версию:
$ cp doc/source/release/template.rst doc/source/release/1.14.6-notes.rst $ gvim doc/source/release/1.14.6-notes.rst $ git add doc/source/release/1.14.6-notes.rst
Добавьте новые заметки к релизу в список релизов документации:
$ gvim doc/source/release.rst
Зафиксируйте результат:
$ git commit -a -m"REL: prepare 1.14.x for further development" $ git push upstream maintenance/1.14.x
Загрузка на PyPI
Загрузите на PyPI с помощью twine. После недавних изменений в PyPI требуется недавняя версия twine, здесь использовалась версия 1.11.0.
$ cd ../numpy $ twine upload release/installers/*.whl $ twine upload release/installers/numpy-1.14.5.zip # Upload last.
Если одна из команд прервётся в середине, что нередко случается, вам может потребоваться выборочно загрузить оставшиеся файлы, потому что PyPI не позволяет загружать один и тот же файл дважды. Файл исходного кода следует загрузить последним, чтобы избежать проблем с синхронизацией, если пользователи pip получат доступ к файлам во время этого процесса. Обратите внимание, что PyPI позволяет только один исходный дистрибутив, здесь мы выбрали архив zip.
Загрузка файлов на github
Перейдите на https://github.com/numpy/numpy/releases, там должен быть v1.14.5
tag, кликните на него и нажмите кнопку «изменить» для этого тега. Есть два способа добавить файлы: используя редактируемое текстовое окно и загрузку файлов в виде бинарных данных.
- Вырежьте и вставьте содержимое файла
release/README.mdв текстовое окно. - Загрузите
release/installers/numpy-1.14.5.tar.gzкак бинарный файл. - Загрузите
release/installers/numpy-1.14.5.zipкак бинарный файл. - Загрузите
release/README.rstкак бинарный файл. - Загрузите
doc/changelog/1.14.5-changelog.rstкак бинарный файл. - Установите флажок «предварительный релиз», если это предварительный релиз.
- Нажмите кнопку
{Publish,Update} releaseвнизу.
Загрузка документации на numpy.org
Этот шаг нужен только для финальных релизов и может быть пропущен для предварительных релизов. make merge-doc клонирует репозиторий numpy/doc в doc/build/merge и обновляет его с новой документацией:
$ pushd doc $ make dist $ make merge-doc $ popd
Если серия релизов новая, вам нужно добавить новый раздел на главную страницу doc/build/merge/index.html сразу после комментария «вставить здесь»:
$ gvim doc/build/merge/index.html +/'insert here'
В противном случае необходимо обновить только ссылки zip и pdf с новым именем тега:
$ gvim doc/build/merge/index.html +/'tag v1.14'
Вы можете «протестировать» новую документацию в браузере, чтобы убедиться, что ссылки работают:
$ firefox doc/build/merge/index.html
После того, как все покажется удовлетворительным, зафиксируйте и загрузите изменения:
$ pushd doc/build/merge $ git commit -am"Add documentation for v1.14.5" $ git push $ popd
Объявление о релизе на scipy.org
Предполагается, что вы сфоркнули https://github.com/scipy/scipy.org:
$ cd ../scipy.org $ git checkout master $ git pull upstream master $ git checkout -b numpy-1.14.5 $ gvim www/index.rst # edit the News section $ git commit -a $ git push origin HEAD
Теперь перейдите в свой форк и создайте запрос на включение для ветки.
Объявление на почтовых списках
Релиз должен быть объявлен на почтовых списках numpy-discussion, scipy-devel, scipy-user и python-announce-list. Обратитесь к предыдущим объявлениям для базового шаблона. Список авторов и список PR совпадают с теми, которые генерируются для заметок к релизу выше. Если вы пересылаете, убедитесь, что python-announce-list — BCC, чтобы ответы не отправлялись на этот список.
Задачи после релиза
Переключитесь на ветку master и перенесите изменения документации:
$ git checkout -b update-after-1.14.5-release $ git checkout maintenance/1.14.x doc/source/release/1.14.5-notes.rst $ git checkout maintenance/1.14.x doc/changelog/1.14.5-changelog.rst $ gvim doc/source/release.rst # Add link to new notes $ git add doc/changelog/1.14.5-changelog.rst doc/source/release/1.14.5-notes.rst $ git status # check status before commit $ git commit -a -m"REL: Update master after 1.14.5 release." $ git push origin HEAD
Перейдите на github и создайте запрос на включение.
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/dev/releasing.html