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

[FEA] PyPI package (wheel) release for the cucim.skimage module on non-Linux platforms (Windows, etc.) #763

Open
gigony opened this issue Aug 20, 2024 · 2 comments
Assignees
Labels
feature request New feature or request

Comments

@gigony
Copy link
Contributor

gigony commented Aug 20, 2024

Is your feature request related to a problem? Please describe.

There is an increasing number of requests from users who want to use the cucim.skimage module (which depends on CuPy) on other platforms (non-Linux).

It would be great if we could release the cucim.skimage portion of the package (e.g., cucim_cu12-24.8.0-py3-none-win_amd64.whl) in the PyPI registry without including the unnecessary/non-supported IO portion (shared libraries) of cuCIM.

Describe the solution you'd like

I believe there is a straightforward way to build and register a Windows Python wheel by updating cucim/ci/build_wheel.sh at branch-24.10 · rapidsai/cucim and register to Windows PyPI package along with the original wheel file (executing this only for a specific build configuration).

# The following will create cucim_cu12-24.6.0-py3-none-win_amd64.whl file.
wheel tags --python-tag=py3 --abi-tag=none --platform-tag=win_amd64 cucim_cu12-24.6.0-cp311-cp311-manylinux_2_28_aarch64.whl
@gigony gigony added the feature request New feature or request label Aug 20, 2024
@gigony gigony self-assigned this Aug 20, 2024
@gigony gigony added this to cucim Aug 20, 2024
@jakirkham
Copy link
Member

We discussed this in the cuCIM meeting today after feedback from RAPIDS OPS. Based on this we revised our plan, which is sketched below

Image

This would split out the Python/C++ bits into pylibcucim and the pure Python bits into pycucim. The cucim package would become a meta package that pulls both in where supported. If the pylibcucim is not supported on a platform (like Windows currently), we would select it out. So users would still install cucim. It would just now work on other platforms not supported today (like Windows) by pulling in the pure Python bits only

The code for cucim-cuXY would look like this

[project]
name = "cucim"
dependencies = [
  "pycucim-cuXY",
  "pylibcucim-cuXY; platform_system == 'Linux'",
]

@jakirkham
Copy link
Member

A few more benefits of this approach...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request
Projects
Status: No status
Development

No branches or pull requests

2 participants