fix(release): ONNX Runtime bundling + Windows installer upload (3.8.1) - #750
Conversation
…ad (3.8.1) The 3.8.0 release shipped a broken Linux .deb / Docker image and never attached the Windows installer. Two independent release-pipeline bugs: 1. Linux/Docker: since #404 turned ENABLE_ONNX on for the Linux release, the binary links ONNX Runtime, but the POST_BUILD copied only the resolved versioned lib (libonnxruntime.so.1.20.1) — not the SONAME the loader requests (libonnxruntime.so.1) — so the packaged binary aborts with "libonnxruntime.so.1: cannot open shared object file" (caught by both scan-assets-qtmesh and docker-publish's ldd check). Fix: OnnxRuntime.cmake exposes QTMESH_ONNX_LIB_DIR and the app/UnitTests POST_BUILD glob-copy every libonnxruntime.so* / .dylib / .dll (versioned file + SONAME symlinks). 2. Windows: Inno Setup writes the installer to packaging/windows/Output/ (its default OutputDir), but the release upload globbed the repo root, so "Upload Windows installer to release" failed with "Can not find any file by QtMeshEditor-<v>-setup-Windows.exe" (long-standing — failing every release since 3.5.x). Fix: point the upload at packaging/windows/Output/. Bump to 3.8.1 + sync pinned doc refs so a re-cut release publishes a working Linux .deb/Docker image and the Windows installer asset. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 44 minutes and 27 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c12cb30471
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| # .so) — the loader requests the SONAME, not the resolved versioned name, | ||
| # so copying only one file breaks `.deb`/Docker packaging. | ||
| file(GLOB _ort_runtime_libs | ||
| "${QTMESH_ONNX_LIB_DIR}/libonnxruntime.so*" |
There was a problem hiding this comment.
Include ONNX provider shared library in Linux bundle
When the official ONNX Runtime 1.20.1 Linux archive is used, its lib/ directory also contains libonnxruntime_providers_shared.so alongside the main SONAME files (upstream package report); this glob only matches libonnxruntime.so*, so that provider bridge never reaches ./bin, and the Linux packaging step later copies only ./bin/*.so* into /usr/lib/qtmesheditor. ONNX Runtime can load this provider bridge while creating a session, so --generate-pbr can still fail in the 3.8.1 .deb/Docker image even though libonnxruntime.so.1 is present.
Useful? React with 👍 / 👎.
|



Hotfix for the broken 3.8.0 release — two independent release-pipeline bugs surfaced after 3.8.0 published.
1. Linux/Docker binary won't start —
libonnxruntime.so.1: cannot open shared object fileSince #404 turned
ENABLE_ONNXon for the Linux release, the binary links ONNX Runtime, but the POST_BUILD copied only the resolved versioned lib (libonnxruntime.so.1.20.1), not the SONAME the loader requests (libonnxruntime.so.1). So./bin/*.so*packaging never included a loadable name → the.deb/Docker binary aborts on startup. Caught by bothscan-assets-qtmesh(PR #749) anddocker-publish'slddcheck (3.8.0 release run).Fix:
cmake/OnnxRuntime.cmakeexposesQTMESH_ONNX_LIB_DIR; the app + UnitTests POST_BUILD now glob-copy everylibonnxruntime.so*/.dylib/.dll(versioned file and SONAME symlinks) next to the binary.2. Windows installer never attached to releases
Inno Setup writes to
packaging/windows/Output/(its defaultOutputDir), but the release upload globbed the repo root →Can not find any file by QtMeshEditor-<v>-setup-Windows.exe. This has failed every release since ~3.5.x (build + smoke tests pass; only the installer-upload step fails).Fix: point the upload
file:atpackaging/windows/Output/.Release
Bumps to 3.8.1 (+ synced pinned doc refs). Merging + re-releasing publishes a working Linux
.deb/Docker image and finally attaches the Windows installer.Verified: macOS configure/build still works; on Linux the glob will now ship
libonnxruntime.so.1(+.so,.so.1.20.1).🤖 Generated with Claude Code