Files
AWatch-rus/docs/RELEASE_CANDIDATE_RUNBOOK_RU.md
T

4.2 KiB

Release Candidate Runbook

Этот документ описывает техническую сборку Release Candidate для AWatch-rus. RC-сборка нужна, чтобы одной воспроизводимой командой собрать проверенные артефакты, зафиксировать git commit, сформировать SBOM/manifest/checksums и сложить результат в отдельный каталог под конкретное имя кандидата.

Release Candidate не равен юридической готовности к подаче в реестр и не заменяет финальную процедуру релиза.

Запуск

Команда выполняется из корня репозитория:

bash scripts/build_release_candidate.sh v1.0.2-rc1

Первый аргумент обязателен. Имя кандидата используется как имя каталога в dist/release-candidate/, поэтому скрипт требует начало с буквы или цифры и дальше принимает только буквы, цифры, точку, подчеркивание и дефис.

Перед сборкой рабочее дерево git должно быть чистым. Если есть незакоммиченные, staged или untracked файлы, скрипт завершится с ошибкой. Это защищает RC от незафиксированного состояния.

Проверки

Скрипт выполняет обязательные проверки и сборку Rust workspace:

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
bash scripts/quality-gate.sh
bash scripts/check_private_config_guard.sh
node scripts/check_portal_contract_sync.mjs

Если любая проверка падает, RC-сборка считается несостоявшейся. Неполный output-каталог при ошибке удаляется, чтобы не смешивать частичные артефакты с валидной сборкой.

Артефакты

Результат складывается в:

dist/release-candidate/<RC_NAME>/

Для примера выше итоговый каталог будет:

dist/release-candidate/v1.0.2-rc1/

В каталоге создаются:

  • git-commit.txt - commit, из которого собран кандидат;
  • FILES.txt - список файлов, покрытых итоговыми checksum, кроме самого SHA256SUMS.txt;
  • SHA256SUMS.txt - SHA-256 для всех файлов каталога, кроме самого SHA256SUMS.txt;
  • sbom/ - SBOM-файлы, созданные существующим генератором scripts/generate_release_sbom_v0_2.sh;
  • RELEASE_ASSETS_MANIFEST-v0.2.json и SHA256SUMS-v0.2.txt - manifest/checksums, которые формирует существующий SBOM generator.

Каталог dist/ не предназначен для коммита в git.

Проверка checksum

Для проверки итоговых checksum:

cd dist/release-candidate/v1.0.2-rc1
sha256sum -c SHA256SUMS.txt

Ожидаемый результат - OK для всех записей. Любая ошибка означает, что набор артефактов изменился после сборки или поврежден.

Перед реальной подачей

Release Candidate подтверждает техническую воспроизводимость сборки, но перед реальной подачей все еще нужны:

  • release tag;
  • release-specific SBOM;
  • license review;
  • signed/checksummed artifacts;
  • проверка отсутствия live/private data;
  • финальные install/user/admin guide под конкретную версию.