-
-
Notifications
You must be signed in to change notification settings - Fork 883
new versions have no source distributions or arm64 wheels #601
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
For Linux, Pyxel wheel includes the following targets:
Some users run Pyxel on ARM64 Chromebook by using Pyxel wheel, I think. |
I'm on windows :( |
In that case, just download the source code from GitHub and follow this instruction: |
I can't execute the make clean install command, I guess I'm doing it wrong, everything is set up |
I've tried to execute the Makefile by hand and even that it keep failing saying that cmake doesn't exists. I had this error before and I fixed it by going on the cmd. But now even in the cmd it doesn't work |
Try executing Pyxel's self-build process by following the steps written in the Makefile. |
Isn't what I did when I manually done the "make clean install" command? I've done by step all things in clean and install, and it crashed the same à a certain command, I'll redo the process on another project to get the precise command that crashes |
Also yes I have git bash |
It crashed at the maturin command in the build thing:
with EDIT : I've tried with a venv made with amd64 and arm64 python, both have the same error |
Hi there from the Pyodide project, Slightly related to the conversations but not directly to the build issues noted above, we would greatly appreciate it if Another benefit of the presence of source distributions would be that they would allow updating Also, please feel free to join in as recipe maintainers (as I notice that there are out-of-tree WASM builds in this repository already) for |
I haven’t used sdist before, so I’m not very familiar with it. However, in Pyxel, several preprocessing steps are executed via scripts before running maturin with a specific Rust version and build options to generate the binary wheel. Because of this, these steps are defined in the Makefile. In such a case, if an sdist is created, would users be able to reproduce the same build process using it? |
Thanks, @kitao. Looking at https://github.com/kitao/pyxel/blob/3fead432aaaf881e25da0c85da17c874bf7a19b9/Makefile as you suggested, I think the primary step is to build SDL2 using Whether users can reproduce the same build process with the sdist depends on whether these prerequisites remain documented well enough. I understand that there are troubles with sdists, especially for those on niche platforms. Most users will enjoy the availability of the wheels, anyway. :) |
If the sdist for Pyxel is uploaded to PyPI, the following would likely happen: I’d like to avoid getting into this kind of cycle. |
There isn't, unfortunately. Of course, there are ways to mitigate it – for example, supporting as many platforms/architectures as one can, but that prospect would have an exorbitantly high cost of maintainership. Is there a list of platforms that will not receive support? The quartet of Windows, GNU/Linux, macOS, and WebAssembly has support already. Let's say:
are the only unsupported platforms at this time (unless they are more niche ones I don't recall). Some of these rely on Python packaging tooling support, and some might need support from the Rust toolchain. I guess the best way to go ahead depends on how much of On this note, one thing that an sdist does help with is that it provides a minimal set of source files that is vetted by the package developer for correctness and further usage for downstream packaging. It can be a starting point to handle these troubles – the fact that you can allow compilation to go through and pass if all the prerequisites for building from source are met is pretty useful, and there is a place (PyPI) to put those files which is trustworthy enough for relying on it for software supply-chain security and a host of other reasons. If there is/can be some data on the percentage of prospective/attempted |
The platforms currently supported by Pyxel are as follows: As a general policy, Pyxel officially supports only platforms where I can personally verify and fix issues as they arise. For other platforms, users are expected to build Pyxel themselves and investigate any issues on their own. There are a couple of exceptions to this. While I cannot check all browsers across all platforms, I still support the browser version because it provides significant benefits to users. For Linux, even though I can only do build verification for the targets that can be built automatically via maturin, I still include them in official releases. I’ve been developing Pyxel for eight years now, and during that time, I’ve rarely received requests to support platforms beyond those listed above. I believe this is because such platforms have a very small user base, and beyond just being able to build Pyxel, users on those platforms often need to take care of many other things themselves — such as ensuring proper drawing performance, or installing dependencies like SDL or OpenGL ES — so self-building has become the norm for them. Also, at this point, a considerable amount of my development time is already taken up by maintenance, support, and platform verification. Therefore, it’s difficult to expand the list of supported platforms any further. If we’re talking about a minimal and verified set of source files, the GitHub release packages serve that purpose exactly. The contents under the doc folder are also used as the README for pip, so while there are a few extra files, most of them are actually required to build with pip. For that reason, the easiest and most reliable way to obtain Pyxel’s source code is either via git or by downloading the release package from GitHub. |
Would you like that I do another issue so that this one is dedicated to Pyodide? |
Uh oh!
There was an error while loading. Please reload this page.
Hey,
I'm sorry if this is not really precise but I'm helped by someone else there
I tried to install pyxel on an arm64 but a lot of things goes wrong. First thing is that it only find the 1.8 version, I was told that I thought first it was because of missing thing like Cargo for Rust language, or VS 2022, but after everything it still doesn't work. It still saying that it can't find CMake.
I tried also to clone the git repository, but it keeps saying that I didn't installed CMake, but I did installed it and Virtual Studio 2022 with Desktop C++ tools and Windows SDK
Here is the git error I get for 1.8 which does have a source distribution:
And here is the msbuild error I get for 2.3 when I try to build from source:
The text was updated successfully, but these errors were encountered: