Skip to content

docs(cli): v2.3.0 spice version always names the runtime path - #2206

Merged
lukekim merged 1 commit into
trunkfrom
fix/v23x-spice-version-runtime-path
Sep 12, 2026
Merged

lukekim merged 1 commit into
trunkfrom
fix/v23x-spice-version-runtime-path

Conversation

@claudespice

Copy link
Copy Markdown
Contributor

Summary

version-2.3.x was cut on 2026-09-10 at 11:24 UTC; #2190 merged at 15:07 the same day and edited website/docs/ only. So the newest release's CLI reference still says the Runtime path line appears only "for a runtime outside the managed install".

At v2.3.0 spice version prints it whenever a runtime resolves, with no test on the source — a reader on an ordinary spice install who sees the line has no reason to think anything unusual has happened, and a reader who doesn't see it has been told the wrong reason why. The conditional in the sentence is real, but it belongs to spice run, where it is a log level (info vs debug), not presence.

This applies #2190's text to the 2.3.x snapshot; both pages are now byte-identical to trunk's vNext copies. Every sentence in the swept text was re-verified against v2.3.0 rather than assumed to carry over — the four source strings, the --cli-only branch, the unprobeable-runtime wording and the JSON shape are quoted below.

Scope: only version-2.3.x — grep -rn "For a runtime outside the managed install" website/ now returns nothing anywhere, and no older snapshot ever carried the sentence (it arrived with #2186).

Source PRs

Test plan

  • Docusaurus build gate — cd website && npm run build:
[SUCCESS] [docusaurus-plugin-llms-txt] Plugin completed successfully - processed 488 documents
[SUCCESS] Generated static files in "build".
  • Versioned-docs propagation — diff -q website/versioned_docs/version-2.3.x/cli/reference/{run,version}.md website/docs/cli/reference/{run,version}.md reports both pairs identical, and grep -rn "For a runtime outside the managed install" website/ returns nothing.
  • Link check — the added [spice install](./install) target exists (ls website/versioned_docs/version-2.3.x/cli/reference/install.md), and the ./run#runtime-selection anchor resolves to the ### Runtime selection heading in the same snapshot's run.md; the full build above is the authoritative gate on both.
  • Files updated: 2 — versioned_docs/version-2.3.x/cli/reference/version.md and .../run.md, matching the diff.

Reproduction

Doc said (website/versioned_docs/version-2.3.x/cli/reference/version.md:46 at docs c0f47f88):

For a runtime outside the managed install, the output also includes its path and source:

Code says (bin/spice/src/commands/version.rs at v2.3.0) — the only guards are --cli-only and "a runtime resolved at all":

OutputFormat::Table => {
    if !args.cli_only {
        println!("Runtime version: {}", describe_runtime_version(runtime.as_ref()));
        if let Some(resolved) = &resolved {
            println!("Runtime path:    {} ({})", resolved.path().display(), resolved.source.describe());
        }
    }
}

The conditional the sentence describes is in spice run, and it is a level, not presence (bin/spice/src/runtime_launcher.rs:126-132 at v2.3.0):

v2.3.0:bin/spice/src/runtime_launcher.rs:130:  tracing::debug!("Using the Spice.ai runtime at '{path}' ({source}).");
v2.3.0:bin/spice/src/runtime_launcher.rs:132:  tracing::info!("Using the Spice.ai runtime at '{path}' ({source}).");

Each remaining string in the replacement text is grepped from v2.3.0, not paraphrased:

$ git grep -n 'pinned by SPICED_PATH\|beside the spice CLI\|installed by spice install\|by the sudo invoker' v2.3.0 -- bin/spice/src/context.rs
v2.3.0:bin/spice/src/context.rs:999:   Self::Pinned => "pinned by SPICED_PATH",
v2.3.0:bin/spice/src/context.rs:1000:  Self::Sibling => "beside the spice CLI",
v2.3.0:bin/spice/src/context.rs:1001:  Self::ManagedInstall => "installed by spice install",
v2.3.0:bin/spice/src/context.rs:1002:  Self::SudoInvokerInstall => "installed by spice install, by the sudo invoker",

version.rs:247 gives None => "not installed" and :250 the "unavailable — the runtime at the path below did not report a version" wording; the JSON arm at :218-229 maps runtime_path/runtime_source through resolved.as_ref().map(...) — hence null when nothing resolves — and serialises found.source, the enum, rather than describe().

Behavior claim: not run — reproducing the printed output needs a spice CLI built at the v2.3.0 tag. The correction is an existence claim about a guard (if let Some(resolved) with no source test) plus four string literals, settled by the quoted lines, so it is labeled Reproduced on that basis.

The version-2.3.x snapshot was cut hours before #2190, so it still ties
the Runtime path line to a runtime outside the managed install. At
v2.3.0 spice version prints it whenever a runtime resolves, with no test
on the source; the conditional is real but belongs to spice run, where
it is a log level, not presence.
@github-actions

github-actions Bot commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

✅ Pull with Spice Passed

Passing checks:

  • ✅ Title meets minimum length requirement (10 characters)
  • ✅ Has at least one of the required labels: area/blog, area/docs, area/cookbook, dependencies
  • ✅ No banned labels detected
  • ✅ Has at least one assignee: claudespice

@github-actions

Copy link
Copy Markdown
Contributor

🚀 deployed to https://3870beab.spiceai-org-website.pages.dev

@lukekim
lukekim merged commit 40b05a9 into trunk Sep 12, 2026
7 of 11 checks passed
@lukekim
lukekim deleted the fix/v23x-spice-version-runtime-path branch September 12, 2026 17:25

This branch was successfully deployed

1 active deployment
preview — 0f120817 Deployed Sep 12, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants