docs: add RC evidence pack

This commit is contained in:
igor04091968
2026-06-12 20:03:18 +03:00
parent a8c0482e76
commit e217ed509a
2 changed files with 116 additions and 1 deletions
+111
View File
@@ -0,0 +1,111 @@
# RC Evidence Pack: Pilot v1
Документ фиксирует доказательства финальной проверки release candidate процесса для ветки `hardening/pilot-v1-defects-cleanup`.
## Идентификаторы проверки
- Branch/ref: `origin/hardening/pilot-v1-defects-cleanup`
- Commit: `a8c0482e760cc17b53182999355f65c17457d7f2`
- Commit short: `a8c0482`
- Дата проверки: `2026-06-12`
- Clean worktree: `<LOCAL_VALIDATION_WORKTREE>/AWatch-rus-rc-validation-a8c0482`
- RC name: `v1.0.2-rc-validation`
- RC output: `dist/release-candidate/v1.0.2-rc-validation/`
- `CARGO_TARGET_DIR`: `$HOME/.cache/aw-rus-hardening-target`
Абсолютный путь локального операторского home-каталога намеренно не фиксируется в tracked-документации. Это не влияет на воспроизводимость: команда использует стандартный `$HOME`.
## Команды проверки
Preflight без вынесенного target dir:
```bash
bash scripts/build_release_candidate.sh --preflight
```
Preflight с вынесенным cargo target dir:
```bash
CARGO_TARGET_DIR=$HOME/.cache/aw-rus-hardening-target \
bash scripts/build_release_candidate.sh --preflight
```
Полная RC-сборка:
```bash
CARGO_TARGET_DIR=$HOME/.cache/aw-rus-hardening-target \
bash scripts/build_release_candidate.sh v1.0.2-rc-validation
```
Команда полной сборки без имени RC проверена отдельно и корректно завершается с `exit=2`, потому что первый аргумент обязателен.
## Созданные RC artifacts
В каталоге `dist/release-candidate/v1.0.2-rc-validation/` созданы:
- `FILES.txt`
- `SHA256SUMS.txt`
- `SHA256SUMS-v0.2.txt`
- `git-commit.txt`
- `RELEASE_ASSETS_MANIFEST-v0.2.json`
- `sbom/cargo-metadata-v0.2.json`
- `sbom/cargo-tree-v0.2.txt`
- `sbom/cyclonedx-rust-v0.2.json`
- `sbom/python-inputs-v0.2.txt`
- `sbom/spdx-rust-v0.2.json`
`git-commit.txt` содержит `a8c0482e760cc17b53182999355f65c17457d7f2`.
## Artifact verification
Подтверждено:
- `sha256sum -c SHA256SUMS.txt`: OK
- `sha256sum -c SHA256SUMS-v0.2.txt`: OK
- JSON parse для `RELEASE_ASSETS_MANIFEST-v0.2.json`: OK
- JSON parse для `sbom/cargo-metadata-v0.2.json`: OK
- JSON parse для `sbom/cyclonedx-rust-v0.2.json`: OK
- JSON parse для `sbom/spdx-rust-v0.2.json`: OK
- `FILES.txt` соответствует фактическому набору checksum-covered файлов: OK
Повторный запуск с тем же `RC_NAME` блокируется сообщением `release candidate output already exists`; существующий `SHA256SUMS.txt` не изменяется.
## Dirty-tree guard
Clean-tree requirement сохранен и проверен двумя сценариями:
- non-ignored untracked file блокирует настоящую RC-сборку;
- tracked modification блокирует настоящую RC-сборку.
В обоих случаях скрипт завершается до создания RC-каталога. Ignored files намеренно не блокируют сборку, иначе `dist/` ломал бы повторные проверки и локальную валидацию артефактов.
## dist/ и git
Подтверждено:
- `git ls-files dist` возвращает `0` tracked files;
- `git status --ignored dist` показывает `!! dist/`;
- `dist/` не добавляется в git и остается локальным output-каталогом.
## Обязательные проверки
В clean validation worktree выполнены:
- `bash -n scripts/build_release_candidate.sh`: OK
- `bash scripts/build_release_candidate.sh --preflight`: OK
- `CARGO_TARGET_DIR=$HOME/.cache/aw-rus-hardening-target bash scripts/build_release_candidate.sh --preflight`: OK
- `git diff --check`: OK
- `bash scripts/check_private_config_guard.sh`: OK
- `node scripts/check_portal_contract_sync.mjs`: OK
- `bash scripts/quality-gate.sh`: OK
Внутри полной RC-сборки также прошли:
- `cargo fmt --manifest-path adk-rust/Cargo.toml --all -- --check`
- `cargo test --manifest-path adk-rust/Cargo.toml --workspace`
- `cargo clippy --manifest-path adk-rust/Cargo.toml --workspace --all-targets -- -D warnings`
- `cargo build --manifest-path adk-rust/Cargo.toml --workspace --release`
## Вывод
Release candidate процесс подтвержден как воспроизводимый в чистом рабочем дереве. Clean-tree requirement сохранен. Сборка не требует ослабления защитных проверок. Ветка готова к review и merge в main.
+5 -1
View File
@@ -4,6 +4,10 @@
Release Candidate не равен юридической готовности к подаче в реестр и не заменяет финальную процедуру релиза.
## Evidence pack
Финальная проверка RC-процесса для ветки `hardening/pilot-v1-defects-cleanup` зафиксирована в `docs/RC_EVIDENCE_PACK_PILOT_V1_RU.md`.
## Запуск
Команда выполняется из корня репозитория:
@@ -33,7 +37,7 @@ Preflight проверяет наличие команд `git`, `cargo`, `bash`,
Рекомендуемый запуск для такого контура:
```bash
CARGO_TARGET_DIR=/home/igor/.cache/aw-rus-hardening-target bash scripts/build_release_candidate.sh v1.0.2-rc1
CARGO_TARGET_DIR=$HOME/.cache/aw-rus-hardening-target bash scripts/build_release_candidate.sh v1.0.2-rc1
```
Это не обход проверок. Все `cargo fmt`, `cargo test`, `cargo clippy`, `cargo build`, `quality-gate`, private-config guard, OpenAPI contract guard и SBOM generation продолжают выполняться. Меняется только место, куда cargo складывает build artifacts.