Подготовка релизов
Одна ревизия исходного кода создаёт две продуктовые линии для пяти нативных платформ:
- архив Core: нода, CLI и внешний майнер;
- пакет GUI: приложение кошелька и встроенная нода.
Релизные артефакты собираются из существующего аннотированного тега версии и
одного аутентифицированного пакета HistoryStep.
Поддерживаемые платформы
| Система | Core | GUI |
|---|---|---|
| Linux x86-64 | .tar.gz |
.deb |
| Linux ARM64 | .tar.gz |
.deb |
| Windows x86-64 | .zip |
установочный .exe |
| macOS Apple Silicon | .tar.gz |
.dmg |
| macOS Intel | .tar.gz |
.dmg |
Все пакеты используют версию рабочего пространства из Cargo.toml.
Подготовка исходного кода
Перед созданием тега:
- обновите версию рабочего пространства и примечания к релизу;
- запустите форматирование, проверку рабочего пространства и тесты изменённых крейтов;
- выполните применимые интеграционные сценарии;
- аутентифицируйте канонический пакет матриц;
- убедитесь, что рабочее дерево содержит только намеренные изменения;
- создайте аннотированный тег
vMAJOR.MINOR.PATCH.
Версия в теге и пакетах должна совпадать точно.
Пакет матриц
Релиз использует один архив:
history-step-pack-v1.tar.gz
Его SHA-256 — явный вход процесса сборки. Каждый нативный исполнитель независимо
распаковывает и аутентифицирует пакет. Метаданные времени выполнения и два
дайджеста листьев матриц должны совпадать с pins.env.
Релизная сборка встраивает аутентифицированные байты в parano1d; пользователю
не нужно загружать матрицы при первом запуске.
Проверка платформ
Запустите вручную процесс Platform CI для коммита с тегом. Он проверяет:
- переносимые флаги сборки;
- компиляцию всего рабочего пространства;
- нативную линковку бинарников;
- поведение проверки оборудования;
- самопроверку GUI;
- штатные вычислительные ядра системы доказательств на каждой поддерживаемой архитектуре;
- корректный отказ на неподдерживаемом старом виртуальном x86 CPU.
Сохраните ID успешного запуска и точный коммит, на который указывает тег.
Черновик релиза
Создайте черновик релиза GitHub для тега и прикрепите аутентифицированный пакет матриц. Не публикуйте его до завершения нативной сборки.
Запустите Native Release, передав:
- существующий тег;
- SHA-256 пакета матриц;
- ID успешного запуска Platform CI;
- канал релиза
stable.
Предварительная проверка требует совпадающий аннотированный тег, черновик релиза, точную ревизию, успешно прошедшую Platform CI, и корректный дайджест пакета.
Нативная сборка
Каждый исполнитель выполняет:
./scripts/build_release.sh \
--pack .release-ci/pack/history-step-pack-v1 \
--output .release-ci/build \
--skip-tests
Полные тесты исходного кода уже прошли на той же ревизии с тегом. Каждое задание всё равно аутентифицирует пакет, собирает полный комплект целевых файлов, выполняет быстрые нативные проверки запуска, упаковывает обе продуктовые линии и загружает их в черновик.
Публикация
Финальное задание скачивает из черновика каждый ожидаемый артефакт, проверяет
дайджест пакета матриц, создаёт единый SHA256SUMS, загружает его и только после
этого открывает релиз.
Неполный набор платформ не публикуется.
Состояние подписей
Конвейер поддерживает необязательный сертификат Apple Developer ID. Без учётных данных проекта macOS использует ad-hoc подпись приложения, а Windows остаётся без Authenticode. Пока полноценные подписи не включены, пользовательская документация должна описывать предупреждения первого запуска и требовать проверку SHA-256.
Проверка опубликованного релиза
После публикации:
- скачайте каждый артефакт так же, как пользователь;
- проверьте
SHA256SUMS; - установите и удалите каждый GUI-пакет на нативной платформе;
- проверьте оборудование и справку Core;
- запустите ноду с чистым каталогом данных;
- проверьте P2P-синхронизацию, отправку кошелька, восстановление чека и корректное завершение;
- сохраните журналы сборки и точный дайджест пакета вместе с данными релиза.