Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ Smaller Python wheels #530

Closed
burgholzer opened this issue Jan 12, 2024 · 0 comments · Fixed by #609
Closed

✨ Smaller Python wheels #530

burgholzer opened this issue Jan 12, 2024 · 0 comments · Fixed by #609
Labels
c++ Anything related to C++ code packaging Anything related to Python packaging usability Anything related to usability
Milestone

Comments

@burgholzer
Copy link
Member

What's the problem this feature will solve?

Since #529, mqt-core can finally be installed like a regular project.
However, the installation of all the main project libraries has bloated the binary Python wheels that we ship quite a bit. They went from a couple hundred KB to roughly 70MB. This isn't really great in the long run.

Describe the solution you'd like

A potential solution would be to go down a similar path as nanobind and ship the complete source code instead of the compiled targets.
Nanobind accomplished this by moving all the target creation code to the nanobind-config.cmake file and also installing the src folder in a predictable location so that the installation layout is the same as the source layout.

This would allow us to ship the source code with the Python package, but require the dependent package to build the respective targets.

For general installation of the C++ project, I believe it still makes sense to keep the targets install.
So my current proposal would be to make the current behavior the default and the proposed behavior opt-in (and automatically enabled for building the python package).

@burgholzer burgholzer added usability Anything related to usability c++ Anything related to C++ code packaging Anything related to Python packaging labels Jan 12, 2024
@burgholzer burgholzer added this to the MQT Core milestone Jan 12, 2024
@burgholzer burgholzer linked a pull request Feb 12, 2024 that will close this issue
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Anything related to C++ code packaging Anything related to Python packaging usability Anything related to usability
Projects
Status: Done
Status: Done
1 participant