﻿[[_infrastructure_modernization]]
=== Модернизация инфраструктуры (Infrastructure Modernization)

Контакт: Ed Maste <emaste@FreeBSD.org> +
Контакт: Alice Sowerby <alice@freebsdfoundation.org>

Проект начался в 3 квартале 2024 года и был заказан Sovereign Tech Agency с бюджетом в 745 000 долларов США, которые должны быть израсходованы до конца 2025 года.
Основные цели — улучшить инструменты безопасности для базовой системы, портов и пакетов, обновить инфраструктуру проекта для ускорения разработки, повысить безопасность сборки и упростить начало работы для новых разработчиков.

Для получения более подробной информации и обновлений, пожалуйста, посетите новый link:https://github.com/FreeBSDFoundation/all-projects/tree/main/Infrastructure%20Modernization%20(STA%20commissioned)[репозиторий с информацией о проекте].

==== Обновление за 4 квартал

Все пять рабочих пакетов завершены к концу декабря 2025 года, и проект закрыт.
На момент написания (середина декабря) некоторые элементы всё ещё находятся на рассмотрении, и они были переданы сотрудникам Фонда для надлежащего внедрения.

===== Рабочий пакет A: Сокращение технического долга (Technical Debt Reduction)

Этот рабочий пакет был завершён в сентябре 2025 года.
Проект успешно выполнялся параллельно с созданием команды по управлению исходным кодом (Source Management team) проекта FreeBSD, поскольку они создавали и внедряли свои новые процессы, чтобы сделать управление ошибками более простым и устойчивым.

Объём работ был определён совместно с srcmgr@.

Элементы работы таковы:

* Создать панель мониторинга для команды по управлению исходным кодом, чтобы получить более чёткую картину отставания по ошибкам (bug backlog) и того, насколько эффективно оно управляется (например, время до первого внимания для новых ошибок).
** Результат: https://grimoire.freebsd.org/
* Обновить Bugzilla до поддерживаемой версии для повышения безопасности и использования новых функций.
** Результат: https://wiki.freebsd.org/Bugzilla/Roadmap
* Создать метод для автоматического применения исправлений.
** Результат: https://github.com/linimon/patchQA
* Создать вышестоящую (upstream) документацию по запуску GrimoireLab (панель управления ошибками) на FreeBSD.
** Результат: https://github.com/chaoss/grimoirelab/blob/main/FreeBSD.md

===== Рабочий пакет B: Сборки с нулевым доверием (Zero Trust Builds)

Этот рабочий пакет сделал возможным осуществлять воспроизводимую сборку FreeBSD без необходимости использования полномочий администратора системы.

Детальный объём работ был сформирован совместно с core@, srcmgr@, secteam@.

Элементы работы таковы:

* Должны быть выполнены
** Сборка без полномочий администратора системы для всех вариантов/артефактов релиза из исходных кодов (завершено)
** Артефакты из исходных кодов собираются воспроизводимо (завершено)
** Формализация и документирование make world и release.sh (на рассмотрении)
* Желательны
** Удаление привилегий из инструментов оркестрации (исключено из-за вероятного альтернативного решения в среднесрочной перспективе)
** Перенос скриптов сборки в публичный репозиторий (на рассмотрении)
** Решение проблем с зависимостями (завершено)
* Возможны
** Стандартизация окружения (на рассмотрении)
** Воспроизводимая сборка портов (на рассмотрении)
** CI для проверки воспроизводимости (на рассмотрении)
** Документация, позволяющая третьим сторонам подтверждать воспроизводимость (на рассмотрении)

===== Рабочий пакет C: Автоматизация CI/CD

Этот рабочий пакет улучшил автоматизацию CI/CD для оптимизации доставки и эксплуатации программного обеспечения, как нового, так и существующего, посредством модернизации и повышения безопасности существующей системы CI/CD и её расширения для охвата сторонних пакетов в коллекции портов FreeBSD.

Детальный объём работ был сформирован совместно с core@, srcmgr@, portmgr@, doceng@.

Элементы работы таковы:

* Должны быть выполнены
** Повышение качества входящих коммитов (на рассмотрении)
** CI перед слиянием (pre-merge CI) (завершено)
** Метаданные окружения (завершено)
** Расширение CI на дерево портов (на рассмотрении)
** Модель угроз для CI (на рассмотрении)
** Процесс управления CI (на рассмотрении)
** Документация (на рассмотрении)
* Желательны
** Совместимость со сторонними системами (на рассмотрении)
** Автоматизированный анализ в тестах (на рассмотрении)
** Управление тестовыми сценариями (на рассмотрении)
* Возможны
** Детальная отладка (на рассмотрении)

===== Рабочий пакет D: Улучшения безопасности портов и пакетов

Этот рабочий пакет улучшил безопасность коллекции портов и пакетов FreeBSD несколькими способами.
Мы добавили поддержку формата OSV (Open Source Vulnerability), который является стандартизированным способом описания уязвимостей безопасности.
Мы также создали базовые инструменты для загрузки информации об уязвимостях из глобальных баз данных безопасности, с особым вниманием к словарю NIST Common Platform Enumeration (CPE).

Инструмент man:pkg[8] теперь может создавать и читать строки CPE, хотя он ещё не поддерживает формат JSON для CPE.
Мы написали новые тестовые примеры для обработки CPE и OSV и обновили существующие тесты аудита безопасности man:pkg[8].
Кроме того, мы создали тестовый репозиторий, который конвертирует данные об уязвимостях FreeBSD в формат OSV и работает с man:pkg[8].
Этот тестовый репозиторий был проверен на точность, и процесс конвертации из старого формата VuXML FreeBSD в новый формат OSV теперь является простым.

Детальный объём работ был сформирован совместно с core@, portmgr@, pkgmgr@, secteam@.

Элементы работы таковы:

* Должны быть выполнены
** Новый формат базы данных (завершено)
** Настройка 2+ экземпляров базы данных (исключено из-за нехватки времени)
** Миграция данных из старой базы данных в новую (POC завершён)
** Добавление поддержки нового формата в man:pkg[8] (завершено)
** Взаимодействие с вышестоящими проектами (upstream engagement) (завершено)
** <<_freebsd_software_bill_of_materials,SBOM>> по требованию (на рассмотрении)
** Документирование настройки целей сборки и тестирования (на рассмотрении)
** Интеграция сторонних тестовых целей (исключено из-за нехватки времени)
** Непрерывное тестирование (на рассмотрении)
* Возможны
** Сделать артефакты CI доступными (исключено из-за нехватки времени)

===== Рабочий пакет E: Улучшения SBOM

Этот рабочий пакет дал фундаментальные улучшения инструментов и процессов для генерации спецификации программного обеспечения FreeBSD (<<_freebsd_software_bill_of_materials,SBOM>>).

Мы внесли изменения (в настоящее время на рассмотрении) для консолидации отдельных данных о происхождении как из базовой системы, так и из деревьев портов в единое, более высокоуровневое представление.
Мы также создали инструментарий, который может сканировать дерево исходных текстов FreeBSD и генерировать отчёт SBOM, охватывающий весь стек программного обеспечения.

Дерево портов FreeBSD уже имело хорошие метаданные для создания SBOM и устоявшиеся инструменты для отслеживания зависимостей пакетов, поэтому наши решения SBOM для портов теперь являются зрелыми и находятся на стадии рассмотрения.
Однако базовая система FreeBSD использует совершенно другую систему сборки, а информация для SBOM разбросана по всему репозиторию.
Основная проблема здесь заключалась в сборе всех зависимостей и информации о пакетах в одном месте.
В результате создание SBOM для базовой системы FreeBSD всё ещё находится на стадии технического предварительного просмотра, и в настоящее время доступны только примерные данные.

На начало 2026 года был заказан последующий проект, опирающийся на эти фундаментальные элементы и направленный на разработку полноценного, надёжного решения для SBOM.

Детальный объём работ был сформирован совместно с core@, portmgr@, pkgmgr@, secteam@, releng@.

Элементы работы таковы:

* Должны быть выполнены
** Оценка проектов/решений, доступных в более широкой экосистеме (завершено)
** Предложение целевого решения для SBOM (на рассмотрении)
** Создание SBOM в CI (например, еженедельные сборки) (исключено из-за нехватки времени)
** Создание SBOM в качестве артефакта в рамках процесса релиза (частично завершено)
** Артефакт SBOM по требованию (на рассмотрении)
** Обобщение существующих данных (на рассмотрении)
** Запись и объяснение принятых решений (на рассмотрении)
* Возможны
** Взаимодействие с другими подобными проектами (завершено)

Заказчик: Sovereign Tech Agency

//
// The FreeBSD Russian Documentation Project
//
// Original EN revision (29.01.2026): 66ecb4ba940e913a1ac10490a388ffa6aeddb15e
//
