[codex] make installer runtime-first#786
Draft
i386 wants to merge 7 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes
install.shthe runtime-first installer for releases that publishnative-runtimes.jsonand native runtime archives.install.shdefaults to the prerelease channel, requires a native runtime manifest, installs the mesh binary bundle, then runsmesh-llm runtime install --manifestand prunes inactive runtimes.install-runtime.shremains as a compatibility wrapper that delegates toinstall.sh, so the older runtime-installer URL still works without duplicate logic.Dynamic-native-runtime release binaries also self-heal on startup: if an older updater installs a 0.72+ binary without installing the matching native runtime cache entry, local-serving startup downloads the release manifest, installs the recommended native runtime, and loads it before model startup. Client-only runs without local models skip that download.
Release CI now publishes native runtime archives from the supported release target jobs. Each
meshllm-native-runtime-*archive contains both the Skippy/llama runtime libraries and the SDK FFI libraries inruntime.sdk; the old separatemeshllm-native-*SDK runtime tarballs and crate wrapper packaging scripts were removed.Behavior
install.shdefaults to--pre-releasebecause runtime releases currently live there.install.sh --stableis supported, but fails clearly while stable lacks runtime release assets.mesh-bundle.tar.gzis used as the fallback runtime binary bundle.runtime installsupport is rejected by the installer.install-runtime.shdelegates toinstall.shfor backward compatibility.mesh-llm updatefrom pre-runtime binaries can hand off to a 0.72+ binary, and the new binary installs its native runtime on first local-serving startup.meshllm-native-runtime-*artifacts as the installer; CUDA/ROCm/Vulkan/Windows selection is driven bynative-runtimes.jsoninstead of a separate SDK artifact lane.Release Assets
The next release publishes versioned mesh binary bundles plus
native-runtimes.jsonand these runtime archives when the corresponding jobs run:meshllm-native-runtime-darwin-aarch64-metal.tar.gzmeshllm-native-runtime-linux-x86_64-cpu.tar.gzmeshllm-native-runtime-linux-aarch64-cpu.tar.gzmeshllm-native-runtime-linux-x86_64-cuda12.tar.gzmeshllm-native-runtime-linux-x86_64-cuda13.tar.gzmeshllm-native-runtime-linux-aarch64-cuda12.tar.gzmeshllm-native-runtime-linux-aarch64-cuda13.tar.gzmeshllm-native-runtime-linux-x86_64-rocm.tar.gzmeshllm-native-runtime-linux-x86_64-vulkan.tar.gzmeshllm-native-runtime-windows-x86_64-cpu.tar.gzmeshllm-native-runtime-windows-x86_64-cuda12.tar.gzmeshllm-native-runtime-windows-x86_64-rocm.tar.gzmeshllm-native-runtime-windows-x86_64-vulkan.tar.gzNo separate
meshllm-native-*SDK runtime archives are published.Validation
python3 -m unittest scripts.tests.test_install_sh scripts.tests.test_install_runtime_shbash -n install.sh && bash -n install-runtime.shbash -n scripts/package-release.sh scripts/package-native-runtime.sh scripts/generate-native-runtime-release-manifest.shbash -n scripts/package-native-runtime.sh scripts/verify-native-runtime-package.sh scripts/ci-prepare-native-runtime.sh scripts/ci-kotlin-sdk-smoke.shruby -e 'require "yaml"; YAML.load_file(".github/workflows/release.yml")'cargo fmt --all -- --checkcargo test -p mesh-llm-native-runtime --libcargo check -p mesh-llm-runtime-installcargo run -p xtask -- repo-consistency release-targetscargo run -p xtask -- repo-consistency ci-crate-listscargo check -p mesh-llm --features dynamic-native-runtimecargo test -p mesh-llm-host-runtime --features dynamic-native-runtime native_runtime_prepare --libcargo test -p mesh-llm-host-runtime --features dynamic-native-runtime prepares_native_runtime --libcargo clippy -p mesh-llm --features dynamic-native-runtime --all-targets -- -D warningscargo check -p mesh-llmcargo clippy -p mesh-llm --all-targets -- -D warningsPowerShell syntax checking for
scripts/package-release.ps1was not run locally becausepwshis not installed in this worktree environment.