Skip to content
This repository has been archived by the owner on Nov 21, 2020. It is now read-only.

Packaging for Windows #1

Closed
McSinyx opened this issue Dec 22, 2019 · 15 comments
Closed

Packaging for Windows #1

McSinyx opened this issue Dec 22, 2019 · 15 comments
Labels
distribution Packaging and distributing of source and binary help wanted Extra attention is needed
Milestone

Comments

@McSinyx
Copy link
Owner

McSinyx commented Dec 22, 2019

I am currently only have GNU/Linux installed on my machine. If you wanna help out, please leave a comment.

The process is as simple as python setup.py bdist_wheel. The real challenge lies on how to install all the dependencies (alure and the libraries it depends on) with environmental variables correctly configured to get our little Cython module to compile.

Edit: distribution for macOS has its own tracker at GH-63 now. Irrelevant comments are now hidden to make the thread easier for guests to follow.

@McSinyx McSinyx added the help wanted Extra attention is needed label Dec 22, 2019
@Huy-Ngo

This comment has been minimized.

@McSinyx

This comment has been minimized.

@McSinyx McSinyx changed the title Support for Windows, macOS, etc. Packaging for Windows, macOS, etc. Dec 25, 2019
@9a24f0

This comment has been minimized.

@McSinyx

This comment has been minimized.

@McSinyx McSinyx added the distribution Packaging and distributing of source and binary label Dec 26, 2019
@McSinyx
Copy link
Owner Author

McSinyx commented Dec 30, 2019

For the build process check out cibuildwheel which will also handle multiple Python versions (and manylinux, see #3). We will still need Windows and macOS for local testing tho.

It is common practice on these two OSes to bundle the shared libraries along with the package (how irony). These include:

The best example I can think of at the moment are pygame and pyGLFW.

@McSinyx McSinyx added this to the 1.0 milestone Dec 30, 2019
@McSinyx
Copy link
Owner Author

McSinyx commented Dec 31, 2019

@McSinyx

This comment has been minimized.

@McSinyx

This comment has been minimized.

@yoyonel
Copy link

yoyonel commented Apr 2, 2020

Docker images can be a good alternative to packaging/building all dependencies on all platforms.

@McSinyx
Copy link
Owner Author

McSinyx commented Apr 2, 2020

@yoyonel, thank you for paying attention to this issue. Could you please elaborate on how Docker can be used to build native wheel on either macOS or Windows? I don't really have much experience with Docker containing non-GNU platform.

@McSinyx McSinyx changed the title Packaging for Windows, macOS, etc. Packaging for Windows Apr 21, 2020
@McSinyx McSinyx linked a pull request Apr 21, 2020 that will close this issue
@McSinyx McSinyx removed a link to a pull request Apr 23, 2020
@Huy-Ngo

This comment has been minimized.

@Huy-Ngo

This comment has been minimized.

@Huy-Ngo
Copy link
Collaborator

Huy-Ngo commented May 2, 2020

Also, are you sure that 7z is installed on Appveyor VM? I had to use zip to unzip it iirc.

@McSinyx
Copy link
Owner Author

McSinyx commented May 2, 2020

I'm glad that you got some of your own findings 😃

Since I'm not on Windows, I can only answer based on the output of appvoyer:

  1. Alure builds and installed alright, and our setup.py can discover it just fine, however palace.cpp cannot be compiled since MSVC doesn't like something about it.
  2. Not sure what you did exactly but the install script in .appvoyer.yml should be able to be reproduced on cmd (not powershell, could be but I almost copied from alure's config and didn't bother to change it, you can if you want to though), with %APPVEYOR_BUILD_FOLDER% replaced by the cwd.
  3. Codecs are not installed in the script. I have a wild imagination that they can be downloaded an unpacked just like openal-soft, but you have to verify that lol. Anyway it's more important to get palace to compiled, since at least mp3 and flac are covered by alure. Not saying you cannot work on both at the same time.
  4. 7zip is sure available, because the build success (see the log linked above).
  5. The build_script: echo py -3 -m cibuildwheel --output-dir wheelhouse is a place-holder, since I don't know how to skip the build stage. The build command we're aiming for is py -3 -m cibuildwheel --output-dir wheelhouse (without the echo).

@McSinyx McSinyx pinned this issue May 3, 2020
@McSinyx
Copy link
Owner Author

McSinyx commented Nov 12, 2020

@McSinyx McSinyx closed this as completed Nov 12, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
distribution Packaging and distributing of source and binary help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants