Skip to content

fix(packaging): bundle qwen_tts source files in PyInstaller build (#212)#237

Open
LucianoVandi wants to merge 1 commit intojamiepine:mainfrom
LucianoVandi:fix/212-pyinstaller-qwen-source-files
Open

fix(packaging): bundle qwen_tts source files in PyInstaller build (#212)#237
LucianoVandi wants to merge 1 commit intojamiepine:mainfrom
LucianoVandi:fix/212-pyinstaller-qwen-source-files

Conversation

@LucianoVandi
Copy link

@LucianoVandi LucianoVandi commented Mar 5, 2026

Fixes #212

Summary

This fixes a PyInstaller packaging issue where qwen_tts runtime expects qwen_tts/core/models/modeling_qwen3_tts.py as a physical file under _MEI..., causing model initialization to fail on macOS bundles.

Changes

Validation

  • Syntax check on modified Python files passed.
  • Packaging path updated in the same scripts used by release CI workflows.

Trade-offs

  • This may slightly increase the packaged sidecar size because qwen_tts is now collected with collect-all, in exchange for reliable runtime initialization in PyInstaller bundles.

Summary by CodeRabbit

Release Notes

  • Bug Fixes
    • Resolved application crashes caused by missing model files during text-to-speech initialization in packaged releases. Enhanced the binary packaging and bundling process to ensure all required dependencies, libraries, and model components are properly included in the final distribution, improving overall application stability and reliability.

@coderabbitai
Copy link

coderabbitai bot commented Mar 5, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0566f3ab-4df3-4cb2-8946-f32d10fa4a57

📥 Commits

Reviewing files that changed from the base of the PR and between 38bf96f and 61d43b8.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • backend/build_binary.py
  • backend/voicebox-server.spec

📝 Walkthrough

Walkthrough

This change fixes a PyInstaller bundling issue where qwen_tts source files were missing at runtime. The fix updates the build configuration to use collect_all instead of collect_data for qwen_tts, ensuring all package contents—source files, data, and binaries—are included in the generated bundle.

Changes

Cohort / File(s) Summary
Packaging Documentation
CHANGELOG.md
Documents the packaging change addressing missing qwen_tts source files in PyInstaller bundles.
Build Configuration
backend/build_binary.py, backend/voicebox-server.spec
Changes qwen_tts collection from --collect-data qwen_tts to --collect-all qwen_tts, and updates the spec file to import and include collected qwen_tts data, binaries, and hidden modules in the packaging configuration.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A bundle once broken, now mended with care,
Qwen_tts source files traveling through the air,
From collect_data's grasp to collect_all's embrace,
PyInstaller's sidecar finds its rightful place. ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: fixing a PyInstaller packaging issue by bundling qwen_tts source files, matching the core objective in the PR description.
Linked Issues check ✅ Passed The PR directly addresses issue #212 by implementing changes to include qwen_tts source files in PyInstaller bundles, ensuring modeling_qwen3_tts.py exists at runtime and resolving the missing file initialization failure.
Out of Scope Changes check ✅ Passed All changes are directly scoped to resolving issue #212: modifying packaging configuration files and updating CHANGELOG. No unrelated alterations to business logic or unrelated systems are present.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


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

@LucianoVandi
Copy link
Author

@jamiepine could you please take a look at this PR when you have time? Thanks!

@Vishaldadlani321
Copy link

can you add hindi language in voice box that can i paste hindi text and then clone

4 similar comments
@Vishaldadlani321
Copy link

can you add hindi language in voice box that can i paste hindi text and then clone

@Vishaldadlani321
Copy link

can you add hindi language in voice box that can i paste hindi text and then clone

@Vishaldadlani321
Copy link

can you add hindi language in voice box that can i paste hindi text and then clone

@Vishaldadlani321
Copy link

can you add hindi language in voice box that can i paste hindi text and then clone

@Vishaldadlani321
Copy link

@jamiepine could you please take a look at this PR when you have time? Thanks!

can you add hindi language in voice box that can i paste hindi text and then clone

1 similar comment
@Vishaldadlani321
Copy link

@jamiepine could you please take a look at this PR when you have time? Thanks!

can you add hindi language in voice box that can i paste hindi text and then clone

@Vishaldadlani321
Copy link

@jamiepine could you please take a look at this PR when you have time? Thanks!

can you add hindi language in voice box that can i paste hindi text and then clone

@Vishaldadlani321
Copy link

@jamiepine could you please take a look at this PR when you have time? Thanks!

can you add hindi language in voice box that can i paste hindi text and then clone

@Vishaldadlani321
Copy link

voice box mein audio generate nahi kar paa raha hai

@LucianoVandi
Copy link
Author

Hi @Vishaldadlani321! This pull request is related only to the PyInstaller fix for qwen_tts.

Support for additional languages (like Hindi) or issues generating audio are not related to this PR.

Please open a new issue and include the language, the error message, and your environment.

That will make it easier to investigate the problem. Thanks!

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.

Bug: Model download fails with missing file in PyInstaller temp dir (_MEI) on macOS

2 participants