eska update --check
eska update
eska update --target-version 0.11.1
eska update --check --format json--check проверяет версии без записи. Без него новая стабильная версия
устанавливается сразу: запуск команды означает согласие на обновление.
Проект, исходники, Git и eska.toml не затрагиваются. Версия в примере
--target-version должна быть опубликована в выбранном канале.
Понижение версии и prerelease/build-суффиксы не поддерживаются.
Команда проверяет собственный исполняемый файл, а не произвольную ESKA из PATH.
- Cargo: каталог
<root>/bin, запись ESKA из crates.io в.crates2.jsonиcargo install --list --root <root>должны соответствовать запущенной версии. Затем выполняетсяcargo install eska --locked --registry crates-io --version …с прежними root, target, profile и features. Доступные версии берутся из официального sparse index crates.io; отозванные, предварительные выпуски и неизвестные версии схемы индекса исключаются. Web API crates.io не требуется. - Официальный установщик: проверяются receipt cargo-dist, источник
1c-tooling/eskaи принадлежность записи запущенному файлу. Axoupdater получает стабильный релиз GitHub и запускает его установщик для прежнего каталога. - Неизвестная установка: возвращается
unsupported-installationбез записи. Это относится в том числе к обычномуtarget/debug/eska, ручной копии без receipt и установкам Cargo из Git/path вместо crates.io.
Ошибка Cargo не вызывает переход на установщик. Нужен рабочий Cargo для обновления Cargo-установки; готовый бинарник обновляется без сборки Rust. При нескольких установках обновляется только запущенная копия.
Перед заменой удерживается файловая блокировка .eska-update.lock в install
root и повторно проверяется версия файла. Сам файл блокировки может оставаться
после завершения; блокировка ОС освобождается при закрытии процесса. После
установки проверяется фактический вывод eska --version.
Старые версии без команды update нужно один раз обновить прежним способом:
повторить cargo install eska --locked (с прежними опциями при нестандартной
установке) либо официальный shell/PowerShell installer. Затем достаточно
eska update. Обновление CLI не обновляет расширение VS Code.
Результат идёт одной JSON-строкой в stdout, сообщения дочернего установщика —
в stderr. Локаль и NO_COLOR не меняют JSON. Пример проверки:
{"schemaVersion":1,"status":"update-available","installedVersion":"0.11.0","availableVersion":"0.11.1","method":"cargo","executable":{"value":"/home/user/.cargo/bin/eska","encoding":"utf-8"}}installedVersion — версия до запуска обновления, availableVersion — выбранная
версия канала; при updated это проверенная новая версия. method:
cargo, installer или unknown. executable использует общий обратимый формат
путей CLI (value, encoding), включая пути, не представимые в UTF-8.
| status | Код выхода | Значение |
|---|---|---|
up-to-date |
0 | Выбранная версия не новее установленной, записи нет |
update-available |
0 | Проверка нашла новую версию |
updated |
0 | Установка завершена, новая версия проверена |
unsupported-installation |
1 | Способ установки не определён; availableVersion = null |
error |
1 | Обновление или проверка не выполнены |
Ошибка имеет форму {"schemaVersion":1,"status":"error","code":"network"}.
Коды: io, network, cargo-query, cargo-install, installer, busy,
invalid-version, verification, runtime. Ошибки разбора аргументов CLI
возвращают код 2 до выполнения команды. При ошибке процесс не выбирает другой
канал и не повторяет установку автоматически; детали дочернего процесса доступны
в stderr. Универсального отката после произвольного сбоя установщика нет.
Проверки Linux используют временные установки и локальный fake release server. Реальная приёмка обновления на Windows/macOS ещё не выполнена.