4.8 KiB
Release readiness v0.2
release-readiness-v0.2 усиливает v0.1 в части коммерческого релиза и
подготовки к реестру российского ПО.
Дата фиксации: 2026-06-03.
1. Что добавлено
| Блок | Файл |
|---|---|
| Machine SBOM generation | scripts/generate_release_sbom_v0_2.sh |
| Release asset verification | scripts/verify_release_assets.sh |
| CI checksum/signature self-test | .github/workflows/release-assets.yml |
| Pilot acceptance act | docs/CUSTOMER_PILOT_ACCEPTANCE_RU.md |
| pfSense perimeter positioning | docs/NETWORK_PERIMETER_PFSENSE_RU.md |
| Pilot freeze gate | docs/PILOT_FREEZE_READINESS_RU.md |
2. Machine SBOM as GitHub Release asset
Сгенерировать assets:
bash scripts/generate_release_sbom_v0_2.sh dist/release-v0.2
Ожидаемые файлы:
dist/release-v0.2/sbom/cyclonedx-rust-v0.2.json
dist/release-v0.2/sbom/spdx-rust-v0.2.json
dist/release-v0.2/sbom/cargo-metadata-v0.2.json
dist/release-v0.2/sbom/cargo-tree-v0.2.txt
dist/release-v0.2/sbom/python-inputs-v0.2.txt
dist/release-v0.2/RELEASE_ASSETS_MANIFEST-v0.2.json
dist/release-v0.2/SHA256SUMS-v0.2.txt
Эти файлы публикуются как GitHub Release assets. Они не хранятся в tracked
source, потому что dist/ является generated output.
3. Подпись release assets
Release manager подписывает checksum file detached signature:
openssl dgst -sha256 -sign <RELEASE_PRIVATE_KEY.pem> \
-out dist/release-v0.2/SHA256SUMS-v0.2.txt.sig \
dist/release-v0.2/SHA256SUMS-v0.2.txt
Проверка:
RELEASE_VERIFY_PUBLIC_KEY=<RELEASE_PUBLIC_KEY.pem> \
bash scripts/verify_release_assets.sh dist/release-v0.2
4. Подписанный Git tag
Требование для финального релиза:
git tag -s release-readiness-v0.2 -m "release-readiness-v0.2"
git tag -v release-readiness-v0.2
git push origin release-readiness-v0.2
Tag должен быть подписан пользовательским ключом правообладателя/maintainer, а не сторонним системным ключом пакетов ОС.
5. CI gate
Workflow:
.github/workflows/release-assets.yml
Проверяет:
- генерацию CycloneDX/SPDX JSON;
- валидность JSON;
- self-test checksum/signature verifier;
- отрицательные сценарии checksum mismatch и missing signature.
6. Pilot acceptance
Шаблон:
docs/CUSTOMER_PILOT_ACCEPTANCE_RU.md
Использовать для коммерческого пилота после установки и первичной настройки. Публичная версия должна оставаться обезличенной.
Перед фиксацией pilot freeze candidate использовать:
docs/PILOT_FREEZE_READINESS_RU.md
Этот gate не добавляет функциональность. Он проверяет, что текущий main остается в границах Pilot v1: Rust Backend, Rust Agent, HTML/HTMX Portal, role-based views, rule-based UEBA v1, pfSense только как contract/readiness/optional integration layer и сохраненный PowerShell runtime/fallback до burn-in/canary/rollback gate.
Полное удаление PowerShell не входит в release-readiness-v0.2 или текущий
pilot freeze: оставшиеся runtime/fallback/installer/repair scripts считаются
документированным слоем отката, установки и поддержки.
7. pfSense perimeter
Документ:
docs/NETWORK_PERIMETER_PFSENSE_RU.md
Ключевая позиция: pfSense является опциональным интеграционным слоем, а не обязательной частью продукта AWatch-rus.
8. Acceptance checklist
- SBOM assets сгенерированы.
SHA256SUMS-v0.2.txtсоздан.SHA256SUMS-v0.2.txt.sigсоздан release private key.scripts/verify_release_assets.shпроходит с public key.- Git tag подписан ключом maintainer.
- GitHub release содержит SBOM JSON/TXT, manifest, checksum и signature.
CUSTOMER_PILOT_ACCEPTANCE_RU.mdзаполнен для пилотного заказчика.- pfSense не описан как обязательный компонент продукта.
PILOT_FREEZE_READINESS_RU.mdзаполнен для pilot freeze candidate.- PowerShell retirement не заявлен как выполненный без отдельного burn-in/canary/rollback/acceptance gate.