Сборка и публикация eve
Исходники eve лежат в eve/: копия vercel/eve
на коммите eb5949a622801b35a2a6f78bb58d9eef27273cac (eve 0.51.1).
В ней пакет eve, зависимость catalog, документация пакета и входы сборки.
Правки Ивы — обычные коммиты в этом каталоге; их держат тесты границы Ивы.
Переход на новый коммит upstream — отдельное решение по ADR-0023.
Правьте eve/packages/eve/src/, прогоняйте затронутые тесты upstream и тесты
границы Ивы, затем коммитьте исходники. Мейнтейнер использует Node ≥24 и pnpm
11.25.0. Для нового архива задайте свежий номер 0.51.1-iva.N в
scripts/build-eve.sh и scripts/eve-release.sh. Пользователь получает готовый
пакет eve и собирает только агента Ивы.
Из чистого дерева:
bash scripts/eve-release.sh
Команда вызывает scripts/build-eve.sh, сохраняет архив в игнорируемый
.eve-out/release/, считает SHA-512 SRI и записывает URL, версию и integrity в
package.json и package-lock.json, а версию и хеши исходников и пакета — в
отслеживаемый eve.lock.json вне eve/. Повторный запуск использует тот же архив,
сверив хеши исходников и пакета. Новым исходникам нужен новый номер N.
Для сравнения сборок: bash scripts/build-eve.sh <пустой-каталог>.
Закоммитьте три файла зависимости локально, затем выполните:
bash scripts/eve-release.sh --publish
Команда проверяет чистое закоммиченное дерево и подготовленный архив, создаёт
и отправляет только метку eve-0.51.1-iva.N, создаёт выпуск GitHub и загружает
архив, скачивает его по итоговому URL со сверкой SHA-512 SRI, затем выполняет
npm ci во временном чистом дереве с пустым кэшем. Первый сбой останавливает
команду. Финальное сообщение разрешает лиду отправить beta; отправка остаётся
отдельным действием после обязательной приёмки. Путь к архиву можно передать
последним аргументом в обоих режимах.
Опубликованные метки eve-*, имена вложений и байты архивов постоянны.
Исправление получает новый N: старые версии Ивы используют прежние URL.
Архивы хранятся вне git.
В node_modules/eve/BUILD.json лежат коммит upstream, версии пакета и
инструментов, sourceTreeHash и packedTreeHash. Тест scripts/eve-copy.test.ts
сверяет исходники и установленный пакет с eve.lock.json, затем метаданные
BUILD и lockfile. Из прав файла хешируется только признак исполнимости:
umask сохраняет хеш. Сборочный .vendor-stamp.json исключён из хеша пакета;
его отпечаток использует относительные пути, поэтому байты архива совпадают
при сборке в разных каталогах.
Apache-2.0 и NOTICE с перечнем изменений Ивы сохранены в исходниках и включены в архив.
Исходный Markdown ↗