docs(release): add readiness v0.2 hardening
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
# 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` |
|
||||
|
||||
## 2. Machine SBOM as GitHub Release asset
|
||||
|
||||
Сгенерировать assets:
|
||||
|
||||
```bash
|
||||
bash scripts/generate_release_sbom_v0_2.sh dist/release-v0.2
|
||||
```
|
||||
|
||||
Ожидаемые файлы:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
Проверка:
|
||||
|
||||
```bash
|
||||
RELEASE_VERIFY_PUBLIC_KEY=<RELEASE_PUBLIC_KEY.pem> \
|
||||
bash scripts/verify_release_assets.sh dist/release-v0.2
|
||||
```
|
||||
|
||||
## 4. Подписанный Git tag
|
||||
|
||||
Требование для финального релиза:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```text
|
||||
.github/workflows/release-assets.yml
|
||||
```
|
||||
|
||||
Проверяет:
|
||||
|
||||
- генерацию CycloneDX/SPDX JSON;
|
||||
- валидность JSON;
|
||||
- self-test checksum/signature verifier;
|
||||
- отрицательные сценарии checksum mismatch и missing signature.
|
||||
|
||||
## 6. Pilot acceptance
|
||||
|
||||
Шаблон:
|
||||
|
||||
```text
|
||||
docs/CUSTOMER_PILOT_ACCEPTANCE_RU.md
|
||||
```
|
||||
|
||||
Использовать для коммерческого пилота после установки и первичной настройки.
|
||||
Публичная версия должна оставаться обезличенной.
|
||||
|
||||
## 7. pfSense perimeter
|
||||
|
||||
Документ:
|
||||
|
||||
```text
|
||||
docs/NETWORK_PERIMETER_PFSENSE_RU.md
|
||||
```
|
||||
|
||||
Ключевая позиция: pfSense является опциональным интеграционным слоем, а не
|
||||
обязательной частью продукта DetMir/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 не описан как обязательный компонент продукта.
|
||||
Reference in New Issue
Block a user