# HY2XS: единственный источник истины для контракта # «продукт / платформа / toolchain». # # Что здесь ЕСТЬ: # версия продукта, линия релиза, схема конфигурации, целевая платформа, # версии и контрольные суммы build-toolchain, политика выбора Hysteria. # # Чего здесь НЕТ и быть не должно: # 1. Прикладные зависимости (Vue, Gin, GORM, npm/Go модули). У них уже есть # канонические lock-механизмы: apps/frontend/pnpm-lock.yaml, # orchestrator/bun.lock, apps/go.sum. Второй слой неизбежно разъедется # с настоящим графом зависимостей. # 2. Конкретная версия Hysteria. Здесь живёт только ПОЛИТИКА выбора # (HYSTERIA_CHANNEL). Результат резолва конкретной сборки замораживается # в tools/build/hysteria-lock.env. Пин версии здесь вернул бы ручное # обновление, от которого мы ушли. # # Файл читается сборкой (tools/build/lib/versions.sh) и проверяется шагом # verify_versions_contract: рассинхрон с package.json / profile.ts / # hy2xs.env / go.mod роняет сборку до создания tarball. # # Синтаксис — POSIX shell: файл должен безопасно подключаться через `.` # без jq, Node и Python. # ------------------------------------------------------------- продукт --- HY2XS_VERSION=1.0.0 HY2XS_RELEASE_LINE=1 HY2XS_CONFIG_SCHEMA_VERSION=2 # ------------------------------------------------------------ платформа --- HY2XS_BUILD_OS=debian HY2XS_BUILD_OS_VERSION=13 HY2XS_BUILD_ARCH=amd64 HY2XS_TARGET_OS=debian HY2XS_TARGET_OS_VERSION=13 HY2XS_TARGET_ARCH=amd64 # ------------------------------------------------------------ toolchain --- GO_VERSION=1.21.13 GO_LINUX_AMD64_SHA256=502fc16d5910562461e6a6631fb6377de2322aad7304bf2bcd23500ba9dab4a7 # Bun выбирает артефакт по наличию AVX2, поэтому одной контрольной суммы # архитектурно недостаточно: обе должны быть зафиксированы заранее. BUN_VERSION=1.3.13 BUN_LINUX_X64_SHA256=79c0771fa8b92c33aae41e15a0e0d307ea99d0e2f00317c71c6c53237a78e25a BUN_LINUX_X64_BASELINE_SHA256=9d8a24292a7068090205daac0a5a223f5f69736f5287e37bf88d3b4031edc750 NODE_VERSION=20.19.0 NODE_LINUX_X64_SHA256=b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5 # pnpm ставится через corepack, отдельного архива с контрольной суммой нет. PNPM_VERSION=9.15.9 # ------------------------------------------------ политика выбора Hysteria --- # stable — резолвить последний стабильный upstream-релиз на build-машине; # pinned — использовать закоммиченный tools/build/hysteria-lock.env офлайн. HYSTERIA_CHANNEL=stable