Преимущества Linux для разработчиков и особенности использования ALT
план большого доклада
«Линейная» разработка
- Linux
- Весь спектр средств разработки:
- промышленные: Eclipse, Netbeans, Emacs
- специализированные: QTDesigner, разнообразные средние и малые IDE
- полный цикл разработки / тестирования в командной строке (например, удалённо на хост платформе)
- Многообразие инструментариев (библиотек)
- Отсутствие разноверсицы в пределах платформы (для разрабатываемого продукта)
- Свободный выбор полнофункциональных (а не демо) инструментов и библиотек
- стандартный формат распространения в рамках линейки платформ (пакет)
- Весь спектр средств разработки:
- ALT
- Дисциплина оформления и использования библиотек
- Собственный каталог инструментов просто оформить в виде стандартного репозитория
- Повышенный контроль качества кода при компиляции
Пакетирование
- Linux
- Стандартный способ оформления процедуры сборки (spec)
- Стандартный способ оформления процедуры установки (spec)
- Стандартный способ контроля зависимостей
- Сборочных
- Установочных
- ALT
- Значительно упрощённый spec по сравнению с Fedora/RH (за счёт умолчаний)
Совместимость с FC по сборке (автоматизированная, см. http://www.altlinux.org/Autoimports)
Бинарная совместимость с FC (возможно, после реорганизации пакета с помощью rpmrebuild)
- Автоматический поиск установочных зависимостей и предоставляемых символов
в том числе контроль предоставляемых символов с помощью set_version
Репозитории
- Linux
- Отсутствие разноверсицы в пределах платформы (для всего хранилища)
- Универсальный способ сравнения, выбора и доставки пакетов с помощью пакетного диспетчера
- Универсальный способ множественного обновления / установки / удаления пакетов с помощью пакетного диспетчера
- Электронная подпись пакетов в рамках хранилища
- ALT
- Пакетный диспетчер APT
Изолированная сборка с помощью hasher
«Чистая» воспроизводимая сборка в произвольном внешнем окружении
- Внешнее окружение ≠ сборочному окружению
Полуавтоматический поиск сборочных зависимостей с помощью buildreq
Тесты на правильность оформления пакета, бинарных файлов, библиотек и др. с помощью sisyphus_check (изолированная версия)
- в т. ч. тесты на отсутствие неизвестных символов
- Результат сборки представляет собой репозиторий ( ⇒ простое создание индивидуального репозитория)
Инфраструктура разработки
- Linux: специфична для различных сообществ
- Сборочные и информационные ресурсы сообщества
- Общий репозиторий, достаточный для формирования дистрибутивов
- Лицензионная чистота (в различной степени)
- ALT
Проверка цельности в рамках хранилища:
- запрет неудовлетворённых зависимостей собираемых пакетов
- запрет увеличения множества непредоставляемых символов
- установочный и иные тесты совместимости пакета с хранилищем
«Сборочница» (girar)
- Атомарная сброка нескольких пакетов в рамках одной транзакции (не должна нарушать цельность репозитория)
- CLI по управлению сборочными транзакциям (запуск, удаление, редактирование списка пакетов и т. п.)
- ACL на право сборки для различных пользователей
- Автоматическая изолированная сборка без ручного вмешательства
- ⇒ Перманентная цельность репозитория
- ⇒ «Rolling release» (получается сам собой)
- DVCS-хостинг (git), интегрированный в сборочный ресурс
CLI с помощью girar
- + полная история успешных сборок
Воспроизводимая технология ( ⇒ полный «корпоративный репозиторий»)
Сопровождение
- Linux (варианты рабочего процесса специфисны для сообщества)
- Эшелонирование репозиториев по уровню цельности
- «Ветвление» и «замораживание» репозиториев (только обновления по безопасности)
- Создание дистрибутивов на базе репозитория
- ALT
- Полный контроль над ЖЦ программного продукта:
- история исходного проекта
- история модификаций в рамках хранилища
- воспроизводимая сборка
- Полный контроль над ЖЦ хранилища:
- обновление исходников - сборка - тестирование - пополнение
- Полный контроль над ЖЦ дистрибутива (программной части АС):
- ответвление целевого хранилища и дисциплина его последующей модификации
- возможность изолированного целевого хранилища
⇒ возможность сертификации / аттестации, в т. ч с итеративной доработкой
- Полный контроль над ЖЦ программного продукта: