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

New package: cuda-histogram #27950

Merged
merged 13 commits into from
Nov 4, 2024
Merged

Conversation

Saransh-cpp
Copy link
Member

@Saransh-cpp Saransh-cpp commented Oct 21, 2024

Checklist

  • Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
  • License file is packaged (see here for an example).
  • Source is from official source.
  • Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
  • If static libraries are linked in, the license of the static library is packaged.
  • Package does not ship static libraries. If static libraries are needed, follow CFEP-18.
  • Build number is 0.
  • A tarball (url) rather than a repo (e.g. git_url) is used in your recipe (see here for more details).
  • GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
  • When in trouble, please check our knowledge base documentation before pinging a team.

Copy link
Contributor

Hi! This is the staged-recipes linter and I found some lint.

File-specific lints and/or hints:

  • recipes/cuda-histogram/meta.yaml:
    • lints:
      • The following maintainers have not yet confirmed that they are willing to be listed here: conda-forge/scikit-hep. Please ask them to comment on this PR if they are.

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Oct 21, 2024

Hi! This is the friendly automated conda-forge-linting service.

I failed to even lint the recipe, probably because of a conda-smithy bug 😢. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint --conda-forge . from the recipe directory.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/11443235746.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/cuda-histogram/meta.yaml) and found it was in an excellent condition.

Copy link
Contributor

Hi! This is the staged-recipes linter and your PR looks excellent! 🚀

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Oct 21, 2024

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/cuda-histogram/meta.yaml) and found some lint.

Here's what I've got...

For recipes/cuda-histogram/meta.yaml:

  • Non noarch packages should have python requirement without any version constraints.
  • Non noarch packages should have python requirement without any version constraints.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/cuda-histogram/meta.yaml) and found it was in an excellent condition.

number: 0
skip: True # [win or osx or py<38]

requirements:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be worth giving https://conda-forge.org/docs/maintainer/knowledge_base/#cuda-builds a read if you haven't already. I don't have any great advice here, but it might also be worth looking at how other tools that enable CUDA support have their conda-forge builds configured.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know how to properly build CUDA enabled packages on conda-forge yet, but the failure on

+ pip check
cuda-histogram 0.1.0 requires cupy-cuda12x, which is not installed.

is coming from the PyPI package dependency on cupy-cuda12x

dependencies = [
  "cupy-cuda12x>=13.1.0",
...
]

Nothing provides this, but I don't know how to get around the dependency check.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hmaarrfk 👋 Given your PR #26116 I'm curious if you have any advice or thoughts here.

Copy link
Member

@matthewfeickert matthewfeickert Oct 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also cc @jakirkham given that you added cupy to conda-forge in the first place (huge thanks there! 🙇) in PR #9959.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also forgot to mention, we have some more up-to-date docs

We have an issue open to refresh the webpage docs ( conda-forge/conda-forge.github.io#1927 ), which we are a bit behind on. Sorry about that 😞

Copy link
Member

@jakirkham jakirkham Oct 31, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah and one more suggestion here

Regarding the CI failure. This is coming from pip check. Basically pip is saying cupy-cuda12x is not installed, which is true as we just install it as cupy. In conda, packages depend on CUDA so have this information encoded as a dependency of the package. Currently wheels lack a way to do this; so, authors have resorted to encoding this information in the wheel name (like cupy-cuda11x and cupy-cuda12x)

To fix pip check, would recommend adding a patch in the recipe to change pyproject.toml to use the canonical name like so. That would fix the error

 dependencies = [
-  "cupy-cuda12x>=13.1.0",
+  "cupy>=13.1.0",
   "awkward>=2.6.3",
   "numpy>=1.22.0",
   "scipy>=1.1.0",
   "hist>=2",
   "boost-histogram",
 ]

- python
- awkward >=2.6.3
- cupy >=13.1.0
- cuda-nvcc
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the user need the CUDA compiler at runtime?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume strictly no, but I'll let @Saransh-cpp comment on that.

build:
script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation
number: 0
skip: True # [win or osx or py<38]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW conda-forge is on Python 3.9+. So we can probably simplify this like so

Suggested change
skip: True # [win or osx or py<38]
skip: True # [win or osx]

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/cuda-histogram/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...

For recipes/cuda-histogram/meta.yaml:

  • PyPI default URL is now pypi.org, and not pypi.io. You may want to update the default source url.

@Saransh-cpp
Copy link
Member Author

Sorry I am a bit inactive from work this week, but I will look into the comments soon. Thanks for all the help @matthewfeickert and @jakirkham, really appreciate it!

@jakirkham
Copy link
Member

The next pip check failure appears to be about mplhep_data being out-of-date. There is a bot PR to update it ( conda-forge/mplhep_data-feedstock#4 ) however that PR has a minor issue that needs fixing for CI to be green. Once addressed this issue should also be fixed here

@matthewfeickert
Copy link
Member

@Saransh-cpp Seems that maybe the new metadata hadn't had time to propagate out everywhere when this was ran, but given that I can see it now

$ pixi search mplhep_data
Using channels: conda-forge

mplhep_data pyhd8ed1ab_0
------------------------

Name                mplhep_data        
Version             0.0.4
Build               pyhd8ed1ab_0       
Size                5757500            
License             MIT AND OFL-1.1 AND LPPL-1.3c
Subdir              noarch             
File Name           mplhep_data-0.0.4-pyhd8ed1ab_0.conda
URL                 https://conda.anaconda.org/conda-forge/noarch/mplhep_data-0.0.4-pyhd8ed1ab_0.conda
MD5                 29e56ff931a12ce95d18614ad033a45c
SHA256              22648eeb812ce80bf2225054f9be80156bbdd567d780190383606a9ac2a421e2

Dependencies:
 - python >=3.7

maybe try again in an hour?

@jakirkham
Copy link
Member

Thank you both! 🙏

Saransh caught a packaging bug with mplhep_data, which is causing its version not to be reported correctly in pip check. More details in this thread: conda-forge/mplhep_data-feedstock#4 (comment)

So we will want to sort that out to fix this issue

@Saransh-cpp
Copy link
Member Author

Being fixed in conda-forge/mplhep_data-feedstock#5

@matthewfeickert
Copy link
Member

Being fixed in conda-forge/mplhep_data-feedstock#5

That's merged now. 👍 So to give it time to propagate maybe try again in an hour (though you're in either the UK or India currently, @Saransh-cpp, so we can it till whenever you're awake and had some weekend rest to look at this again). :)

@jakirkham
Copy link
Member

jakirkham commented Nov 1, 2024

Thank you both! 🙏

Was able to pick up the fixed package locally and confirm the fix. So have restarted CI

@matthewfeickert
Copy link
Member

@conda-forge/help-python, ready for review!

@jakirkham jakirkham merged commit d6a25ff into conda-forge:main Nov 4, 2024
9 checks passed
@jakirkham
Copy link
Member

Thank you both! 🙏

@jakirkham
Copy link
Member

The feedstock now lives here: https://github.com/conda-forge/cuda_histogram-feedstock

Also @Saransh-cpp to join conda-forge and have permissions on this feedstock, please follow these steps: conda-forge/cuda_histogram-feedstock@34a2ff4#commitcomment-148713846

@Saransh-cpp Saransh-cpp deleted the cuda-histogram branch November 5, 2024 09:06
@Saransh-cpp
Copy link
Member Author

Thanks for all the help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

4 participants