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

macOS + Windows wheels #335

Closed
wants to merge 2 commits into from
Closed

Conversation

janosh
Copy link

@janosh janosh commented Jan 18, 2025

closes #295

@atztogo i noticed you don't directly use

in the build_wheels steps. is that by design? i think it could replace your code

git tag v`grep __version__ phono3py/version.py|awk -F'"' '{print($2)}'`
python -m cibuildwheel --output-dir wheelhouse

if not and phono3py has special requirements i'm unaware of, then what i did (simply adding Windows and macOS to the strategy.matrix.os) might not work in which case, feel free to close this PR

@atztogo
Copy link
Member

atztogo commented Jan 19, 2025

I followed

I have only created Linux wheel packages for Phonopy, which Phono3py depends on. If additional builds for Phono3py are needed, I should begin working on them.

My main job is writing scientific papers, and my research relies on various software packages and services (e.g., the Materials Project). As a way to give back, I want to contribute what I can to the community within my limited time and energy, primarily by maintaining Phonopy and Phono3py. However, providing extensive support for numerous Phonopy and Phono3py users is likely beyond my capacity. My goal is to remain motivated and keep Phono3py going for as long as possible, which means supporting users in a somewhat “energy-saving” mode.

Currently, I face these challenges:

  • Creating packages involves a lot of trial and error, which I find tedious, and it often includes technical details I’m not particularly interested in.
  • Keeping up with changes in packaging rules, dependent libraries, or GitHub Actions services requires ongoing effort. Though these tasks might be straightforward for some, they’re more difficult for me, partly because I’m a slow reader of English documentation.

What I truly need is maintainers. If maintainers cannot be secured, I believe limiting support to Linux wheel packages would be a reasonable compromise. I might attempt to include macOS support. For Windows, I struggled for making conda-forge package, but probably haven't yet succeeded (conda-forge/phono3py-feedstock#94).

@janosh
Copy link
Author

janosh commented Jan 19, 2025

Creating packages involves a lot of trial and error, which I find tedious, and it often includes technical details I’m not particularly interested in.

i can very much relate to that!

What I truly need is maintainers. If maintainers cannot be secured,

i'm a very recent user of phono3py and not familiar with the code base. at this point, i'd be a liability but i plan to keep using phono3py and i'd be happy to help maintain it if later this year i feel i understand it well enough.

i also think windows wheels are nice to have but not a requirement. no push back if you think they're currently out of scope, so feel free to close this since the uv install already works on macOS anyway

@atztogo
Copy link
Member

atztogo commented Feb 1, 2025

I succeeded to create windows build for phono3py. The final piece was a bug (#344). I just leave difficulties that I met

  • Learning CI build manner and dependent packages --> Treatments of environment variables, directories, and powershell
  • Windows VS c/c++ compiler behavior for long --> All long were replaced by int64_t.
  • Windows specific incompatibility introduced at numpy v2 --> First all dtype="int_" were replaced by "long", and then "int64".

@janosh
Copy link
Author

janosh commented Feb 1, 2025

@atztogo much appreciated!

@janosh janosh closed this Feb 1, 2025
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.

Publish pre-compiled wheels to PyPI
2 participants