Skip to content

fix(release): ONNX Runtime bundling + Windows installer upload (3.8.1) - #750

Merged
fernandotonon merged 1 commit into
masterfrom
fix/onnx-packaging-windows-deploy-3.8.1
Jun 22, 2026
Merged

fix(release): ONNX Runtime bundling + Windows installer upload (3.8.1)#750
fernandotonon merged 1 commit into
masterfrom
fix/onnx-packaging-windows-deploy-3.8.1

Conversation

@fernandotonon

Copy link
Copy Markdown
Owner

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 file

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 ./bin/*.so* packaging never included a loadable name → the .deb/Docker binary aborts on startup. Caught by both scan-assets-qtmesh (PR #749) and docker-publish's ldd check (3.8.0 release run).

Fix: cmake/OnnxRuntime.cmake exposes QTMESH_ONNX_LIB_DIR; the app + UnitTests POST_BUILD now glob-copy every libonnxruntime.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 default OutputDir), 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: at packaging/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

…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>
@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@fernandotonon, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0b717a52-1032-49d8-a4ab-30b6402d84e6

📥 Commits

Reviewing files that changed from the base of the PR and between 4626b23 and c12cb30.

📒 Files selected for processing (6)
  • .github/workflows/deploy.yml
  • CMakeLists.txt
  • README.md
  • cmake/OnnxRuntime.cmake
  • src/CMakeLists.txt
  • website/src/hooks/useQtmeshActionRef.js
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onnx-packaging-windows-deploy-3.8.1

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread src/CMakeLists.txt
# .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*"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@sonarqubecloud

Copy link
Copy Markdown

@fernandotonon
fernandotonon merged commit 9d7b8ec into master Jun 22, 2026
21 checks passed
@fernandotonon
fernandotonon deleted the fix/onnx-packaging-windows-deploy-3.8.1 branch June 22, 2026 04:49
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