-
Notifications
You must be signed in to change notification settings - Fork 61
No wasmtime-30.0.0-py3-none-any.whl
on PyPI.
#271
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
Comments
I think this was a mistake from #268 where I didn't review that closely enough. You wouldn't happen to know the |
Assuming you mean the setuptools argument, for Python 3.12 it's this: $ python
Python 3.12.9 (main, Feb 13 2025, 09:16:40) [GCC 14.2.0 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from sysconfig import get_platform
>>> get_platform()
'mingw_x86_64_msvcrt_gnu'
>>> For Python 3.11 and below, it's |
Ok I'll attempt to add those in #272 |
Merging #272 to main with both names resulted in a failure to push to test.pypi.org because of what I presume is |
Most likely correct. I think Normally the lack of I think it's worth mentioning workarounds: |
Ok I can try that in #275. I really am clueless what the "right thing" to do here is. I'm clearly not equipped to review PRs like this for this project. |
This isn't a direct answer, but I hope this helps with context. Basically, PyPI only meaningfully supports "all Linux distros" ( The way you're supposed to use Python on such systems is "in tandem with the system package manager". Those will provide binary blobs/wheels for systems unsupported by PyPI. But the current practice of suggesting to use virtualenvs for all development complicates that (unless you allow using system deps in your venv, not always possible). So you may still need to use If you use Python on any other system, when those Pythons'
You could also upload a source distribution with the same logic/all the supported |
Ok that all makes sense, thanks! Would you happen to know if there's a reference for the I figured the |
I don't think it exists for Just so we're both aware (TIL!), in a different context outside of
I would personally put the source in an
Unfortunately, I've never uploaded a Python package with Rust code (or used Maturin, for that matter) so I'm not sure how helpful I'd be. What I know comes from involuntarily having to learn about this stuff over several years to prevent having multiple Python environments installed (currently failing at this :)...). DisclaimerRe: the |
This is all helpful, thanks! I don't have time myself to champion a thread on Discourse, but if you're willing to help I can frame the probably in non-Rust terms if that helps? The crux is this package is built on the C API of Wasmtime itself, and this is all loaded into Python using The Wasmtime release process itself produces a set of dynamic libraries for a slew of platforms, and then the source code itself supports more platforms beyond this. Ideally what I'd want to do is:
What I'm doing today I probably copied from somewhere not really knowing fully what I was doing. It's a rough approximation of this but as I'm discovering there's not a great way to have a wheel-per-binary since there's not a platform tag per target and then I also never got around to implementing the build-from-source path. |
For uploading to PyPI, that would probably be the
Yea, probably. And I would probably go into the |
Took me a while to formulate what I wanted to say, but I posted a thread: https://discuss.python.org/t/best-practices-for-cross-compiling-wheels-with-setup-py/85224 |
Oh dear sorry I forgot about that conversation :( It's true that, today, it's not the case that all the dynamic libraries are bundled into one wheel. It's also correct that I think we were relying on MinGW as the "one platform" to use the fallback wheel which happens to have the right dynamic library for it (which is also a flawed assumption as many other platforms could use the fallback wheel). I haven't actually looked into upload limits on PyPI and such, it may just be best to throw everything into one wheel and go from there. That would require some changes to the selection of which dynamic library to load but that wouldn't be the end of the world. Thanks for opening up a thread though! |
Alright, opening the thread was definitely very productive. I encourage you to read it, but the short fix is:
The above is the "well, at least you're no longer calling I may try this myself if you don't get to it, but I'm definitely distracted and trying to decrease my yak stack these past few weeks :D.
|
Thanks! I'm not opposed to alternative means of managing this project's metadata, what's here is just what happened to be the first thing I got working. I don't fully grok most of that thread as it's got lots of terms/references to Python things I don't understand, but I can try to find time for things in the future for a change like this. |
Is there a Bytecode Alliance email address I can contact you at? |
I don't have a BA email but you can reach me at (EDIT: redacted) (I'll probably scrub this email from this comment once I get an email from you) |
Email sent, feel free to scrub the comment. |
Today, I got an error when trying to add
wasmtime
to a PDM project in a MinGW environment:I've never seen this before, but according to the log, PDM can't find a compatible version, which would be
none-any
. I noticed on PyPI that thenone-any
wheel is missing for30.0.0
, but is present for29.0.0
. And indeed, installing29.0.0
works! Is this intentional?See #10 for prior art.
The text was updated successfully, but these errors were encountered: