Skip to content

fix(publish): exact-pin sherpa-onnx 1.13.5 + matching win-x86 prebuilt - #17

Merged
willwade merged 1 commit into
mainfrom
fix/win-x86-sherpa-pin
Aug 16, 2026
Merged

fix(publish): exact-pin sherpa-onnx 1.13.5 + matching win-x86 prebuilt#17
willwade merged 1 commit into
mainfrom
fix/win-x86-sherpa-pin

Conversation

@willwade

Copy link
Copy Markdown
Contributor

Why

The v0.3.17 release's i686-windows job failed: LNK2019: unresolved external symbol _SherpaOnnxGetOnnxruntimeVersionStr.

Two compounding causes, both verified:

  1. Fresh dependency resolution on every release buildCargo.lock is gitignored and the version job sed-rewrites Cargo.toml, so the matrix builds lock from scratch. sherpa-onnx had drifted to 1.13.5 since the workaround was written.
  2. The i686 workaround downloads a version-pinned prebuilt lib (sherpa-onnx-sys can't auto-resolve win-x86). It still fetched v1.13.4, whose sherpa-onnx-c-api.lib lacks SherpaOnnxGetOnnxruntimeVersionStr (0 occurrences; the v1.13.5 archive has 3 — checked directly in the COFF archives).

What

  • sherpa-onnx = "=1.13.5" exact pin — note that pinning to 1.13.4 is not an option: sherpa-onnx 1.13.4 doesn't compile against sherpa-onnx-sys 1.13.5 (upstream leaves its own sys dep on 1.13; a struct gained a field), so the only consistent fresh resolution is a matched pair
  • publish.yml downloads the v1.13.5 win-x86 static archive (asset exists, symbol verified), with comments documenting both drift failure modes and the Cargo.toml coupling

Testing

  • Fresh lockfile resolves sherpa-onnx 1.13.5 + sherpa-onnx-sys 1.13.5; release build green; 178 lib tests pass; live sherpa suite green (except the 2 matcha tests whose model isn't downloaded locally — CI fetches it)

After merge: re-tag v0.3.17 on the merge commit to re-run the release.

The i686-windows release build failed with LNK2019: unresolved
_SherpaOnnxGetOnnxruntimeVersionStr. Cargo.lock is gitignored and the
version job rewrites Cargo.toml, so every release build resolves
dependencies fresh — sherpa-onnx drifted to 1.13.5 while the i686
workaround still downloaded the v1.13.4 win-x86 static lib, whose
C-API lacks that symbol (verified: 3 occurrences in the 1.13.5
archive's sherpa-onnx-c-api.lib, 0 in 1.13.4's).

Also, an exact 1.13.4 pin is not viable: sherpa-onnx 1.13.4 does not
compile against sherpa-onnx-sys 1.13.5 (upstream doesn't pin its own
sys dep; OfflineSpeechDenoiserDpdfNetModelConfig gained a field), so
the only consistent fresh resolution is a matched pair.

- Cargo.toml: sherpa-onnx = "=1.13.5" with a KEEP-IN-SYNC note
- publish.yml: download v1.13.5 win-x86 static libs; comments explain
  both failure modes of drift (compile error, LNK2019)

Verified locally: fresh lock resolves 1.13.5/1.13.5, release build ok,
178 lib tests green, live sherpa suite green except the two tests whose
matcha model isn't downloaded locally (CI fetches it).
@willwade
willwade merged commit 2f570a2 into main Aug 16, 2026
9 checks passed
@willwade
willwade deleted the fix/win-x86-sherpa-pin branch August 16, 2026 16:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant