Сборка OutWiker¶
Содержание
Общие моменты, связанные со сборкой¶
В данном разделе предполагается, что были проделаны все операции, описанные в разделе Быстрый старт, т.е. скачаны исходники и установлены все требуемые библиотеки.
Все задачи, связанные со сборкой, создают внутри папки build
папку, имя которой соответствует номеру текущей версии OutWiker в формате x.x.x.xxx
. Например, 3.1.0.896
. Также внутри папки build
создается временная папка tmp
, предназначенная для хранения файлов во время сборки. Данная папка очищается перед каждой сборкой.
Также перед каждой задачей сборки создается папка tmp/src
, которая содержит копию исходников в соответствии с настройками сборщика: собирается стабильная версия или нестабильная. Если собирается нестабильная версия, то после копирования из исходников удаляется файл versions_stable.xml
, остается только файл versions.xml
, описывающий изменения в текущей версии в формате для нестабильной версии.
Если собирается стабильная версия, то после копирования исходников в tmp/src/
исходный файл versions.xml
удаляется, а файл versions_stable.xml
переименовывается в versions.xml
. Подробнее о формате файла versions.xml
см. раздел Хранение номеров версий в OutWiker и плагинах (не написано).
Разные классы сборок могут добавлять дополнительные файлы в папку tmp
.
Описанные возможности реализованы в классе buildtools.builders.base.BuilderBase
.
Сборка осуществляется с помощью команд Invoke (см. раздел Выполнение команд Fabric).
Примечание
Многие команды сборки принимают булевы параметры. Чтобы в такую задачу передать значение True, в качестве параметра в командной строке нужно передать одно из следующих значений: 1 или true (независимо от регистра). Чтобы передать значение False, нужно передать какое-либо другое значение.
Сборка под Windows¶
Использование команды inv win¶
Для того, чтобы собрать все виды дистрибутивов под Windows как нестабильную версию, используется команда
inv win
Для того, чтобы собрать все виды дистрибутивов под Windows как стабильную версию, используется команда
inv win --is-stable
или
inv win -i
Для нестабильной версии будут созданы следующие артефакты в папке build/{номер версии}/windows
:
- Папка
outwiker_exe
, содержащая все файлы, необходимые для запуска под Windows, включая все плагины в папкеplugins
. outwiker_win_unstable.zip
- zip-архив, содержащий содержимое папкиoutwiker_exe
, но без плагинов во вложенной папкеplugins
.outwiker_win_unstable.7z
- 7z-архив, содержащий содержимое папкиoutwiker_exe
, но без плагинов во вложенной папкеplugins
.outwiker_win_unstable_all_plugins.zip
- zip-архив, содержащий содержимое папкиoutwiker_exe
, включая плагины во вложенной папкеplugins
.outwiker_win_unstable_all_plugins.7z
- 7z-архив, содержащий содержимое папкиoutwiker_exe
, включая плагины во вложенной папкеplugins
.outwiker_win_unstable.exe
- инсталятор, созданный с помощью Inno Setup.versions.xml
- манифест с описанием текущей версии программы OutWiker (см. раздел Хранение номеров версий в OutWiker и плагинах (не написано)).
Для стабильной версии будут созданы следующие артефакты в папке build/{номер версии}/windows
:
- Папка
outwiker_exe
, содержащая все файлы, необходимые для запуска под Windows, включая все плагины в папкеplugins
. outwiker_{x.x.x}_win.zip
- zip-архив, содержащий содержимое папкиoutwiker_exe
, но без плагинов во вложенной папкеplugins
.outwiker_{x.x.x}_win.7z
- 7z-архив, содержащий содержимое папкиoutwiker_exe
, но без плагинов во вложенной папкеplugins
.outwiker_{x.x.x}_win_all_plugins.zip
- zip-архив, содержащий содержимое папкиoutwiker_exe
, включая плагины во вложенной папкеplugins
.outwiker_{x.x.x}_win_all_plugins.7z
- 7z-архив, содержащий содержимое папкиoutwiker_exe
, включая плагины во вложенной папкеplugins
.outwiker_{x.x.x}_win.exe
- инсталятор, созданный с помощью Inno Setup.versions.xml
- манифест с описанием текущей версии программы OutWiker. Этот файл является переименованным файломsrc/versions_stable.xml
(см. раздел Хранение номеров версий в OutWiker и плагинах (не написано)).
Команде inv win
можно передавать следующие дополнительные параметры:
-i или –is-stable - собрать OutWiker как стабильную версию -k или –skipinstaller - при сборке не создавать инсталятор -s или –skiparchives - при сборке не создавать архивы
Чтобы удалить все артефакты, созданные командой inv win
, предназначена команда:
inv win-clear
Порядок сборки дистрибутивов под Windows¶
Все действия, связанные со сборкой под Windows сосредоточены в классе buildtools.builders.windows.BuilderWindows
, который является производным от buildtools.builders.base.BuilderBase
.
В процессе сборки выполняются следующие действия:
Действия, выполняемые классом buildtools.builders.windows.BuilderBase
.
- Создание папки
build
. - Выполняется команда очистки. Для сборки под Windows это равносильно выполнению команды
inv win_clear
. - Удаляется временная папка
build/tmp
, если она существовала. - Создается временная папка
build/tmp
. - Создается папка
build/{номер версии}/windows
, если она не существовала. - Исходники копируются в папку
build/tmp/src
. - В папке
build/tmp/src
удаляется файлversions_stable.xml
, если создается нестабильная версия OutWiker, илиversions_stable.xml
переименовывается вversions.xml
, если создается стабильная версия OutWiker.
Действия, выполняемые классом buildtools.builders.windows.BuilderWindows
.
- В папку
tmp
копируются файлыcopyright.txt
иLICENSE.txt
. - Создается пустая папка для плагинов
tmp/src/plugins
, если она не была создана. - Создается бинарная сборка в
tmp/outwiker_exe
(см. раздел Создание бинарной сборки). - Удаляется и создается заново папка
tmp/outwiker_exe/plugins
. - Создаются архивы с бинарной сборкой в формате zip и 7z без плагинов. Созданные архивы помещаются в
build/{номер версии}/windows
. - На основе файла шаблона
need_for_build/windows/outwiker_setup.iss.tpl
создается файлtmp/outwiker_setup.iss
, используемый для создания инсталятора с помощью Inno Setup. - Создается инсталятор в папке
tmp
. - Созданный инсталятор перемещается в папку
build/{номер версии}/windows
. - Все плагины копируются в папку
tmp/outwiker_exe/plugins
. - Создаются архивы с бинарной сборкой в формате zip и 7z с плагинами. Созданные архивы помещаются в
build/{номер версии}/windows
. - Папка
tmp/outwiker_exe
перемещается вbuild/{номер версии}/windows
.
Создание бинарной сборки¶
Самое важное, что делает команды inv win
и inv linux_binary
- это создание запускаемых приложений под Windows и Linux соответственно, чтобы пользователям не требовалось устанавливать интерпретатор Python. Это осуществляется с помощью утилиты cx_Freeze.
В результате выполнения данного скрипта будет создана папка build/version/windows/outwiker_exe
(в Windows) или build/version/outwiker_linux/outwiker_exe
(в Linux), содержащая запускаемый файл outwiker.exe
(в Windows) или outwiker
(в Linux), а также дополнительные файлы, необходимые для работы с библиотеками, и папки, необходимые для работы OutWiker. Все необходимые модули cx_Freeze помещает внутрь запускаемого файла (outwiker.exe
или outwiker
).
Создание архивов с исходниками¶
Для создания архивов с исходниками предназначена команда inv sources
, которая может принимать дополнительный параметр –is-stable (или -i), указывающий, будет создаваться архив исходников в виде стабильной. Если этот параметр не указан, то исходные коды оформляются как для нестабильной версии OutWiker.
Во время сборки архивов с исходниками создается папка build/{номер версии}/sources
, в которую будут помещены архивы. Независимо от выбранного режима сборки создается архив outwiker-src-full-{номер версии}.zip
с полной копией исходников (создается с помощью команды git archive
).
Если создается архив исходников как нестабильной версии, то создается файл outwiker-src-min-{номер версии}-unstable.zip
, который содержит минимально необходимый набор файлов, чтобы запустить OutWiker. Если создается архив стабильной версии, то этот файл будет называться outwiker-src-min-{номер версии}.zip
. Содержимое архивов в двух режимах сборки отличается только текстом файла versions.xml
.