isl-org / isl-org/Open3D

Request: publish a distribution that works with Python 3.10 under Nix on macOS

Open
#6,701 2 comments 0 reactions 0 assignees View on GitHub
feature request
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

### Checklist

- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](https://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](https://www.open3d.org/docs/release/) and the [latest documentation](https://www.open3d.org/docs/latest/) (for `main` branch).

### Proposed new feature or change

I use Nix with poetry2nix to build my Python 3.10 environment on both macOS and Linux. At the moment, I'm not able to use Open3D. This is because:

* Nix currently builds everything for the macOS 11 SDK. This will hopefully change at some point, but it could be a while.
* I use an arm64 MacBook.
* poetry2nix turns my list of Python dependencies into a set of Nix packages. It searches for binary or source distributions for each PyPI package that are compatible with the system.
* Open3D does not publish a source distribution, so it cannot use this.
* It's also rather difficult to use the source directly from GitHub. Open3D's setup.py contains variables like the package name that are expected to be substituted by CMake (I think?) and so it cannot be executed directly.
* Open3D does publish a lot of wheels, but
* `open3d-0.18.0-cp310-cp310-macosx_13_0_arm64.whl` is not usable because it targets macOS 13 SDK
* `open3d-0.18.0-cp310-cp310-macosx_11_0_x86_64.whl` is not usable because it targets the wrong arch

There are a few possible solutions:

* Also publish a source distribution to PyPI, with template variables in setup.py already substituted.
* Publish a universal wheel which works on both x86 and arm64, like the one available for Python 3.11: `open3d-0.18.0-cp310-cp310-macosx_10_15_universal2.whl`
* Change the target SDK of the arm64 wheel (assuming it doesn't depend on anything in 12/13), creating `
open3d-0.18.0-cp310-cp310-macosx_11_0_arm64.whl`

I haven't looked much into the Open3D packaging pipeline so not sure how it's currently done. If there's a contribution that I can make to enable this change, please let me know.

### References

_No response_

### Additional information

_No response_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.