Автоматизация сборки

TODO В 2025 году лекция занала час. Может, добавить сборку wheel обратно?

Этапы формирования дистрибутива

Генераты не хранятся в репозитории, однако некоторые из них (например, документация, скомпилированные переводы и т. п.) используются при публикации.

<!> Повторение: .gitignore

Автоматизация сборки

Как понятие «сборка» стало «оркестрацией»

Как следствие: использование инструментов не по назначению:

Универсальный инструмент сборки

Классический вариант: рецепты и файловые зависимости

Задача на самом деле сложная: предусмотреть кроссплатформеннные варианты процедуры сборки!

Упрощённый вариант: задания и зависимости между ними

Комбайны: Tox, Poetry, Hatchling, PDM — используются повсеместно, но чуть ли не хуже именно как проекты сборки (синтаксис сложный).

На примере DoIt

Сайт DoIt

Пример: MooTest

Попробуем обвязать doit-автоматизацией MooTest (см. Makefile).

Пример: GradeProject2021

Пример dodo.py

В нашем случае нуждается в автоматизации:

Выводы

В целом те же проблемы: шумно из-за python вместо декларативного синтаксиса, внешние команды и т. п.), зато

<!> Doit хранит метки выполнения заданий и возраст объектов в файле .doit.db

Д/З

Обеспечить в семестровом проекте (предпочтительно с помощью doit):

LecturesCMC/PythonDevelopment2025/11_AutomationBuild (последним исправлял пользователь FrBrGeorge 2025-04-22 20:05:12)