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

Adding modelscope #29210

Open
wants to merge 14 commits into
base: main
Choose a base branch
from
Open

Adding modelscope #29210

wants to merge 14 commits into from

Conversation

zbowling
Copy link
Member

@zbowling zbowling commented Feb 20, 2025

This is a funny omnibus package. It has more optional dependencies than I have seen in a package. It's pretty popular but it's also a mess on some of the bits.

Some features depend on binary-only provided wheels on some random bucket hosted in China (those I can't install for you if you rely on them), and some of the extra dependencies listed just don't exist anywhere I can find except for maybe on old blog posts.

But overall, outside not having some of the optional deps in conda-forge it's largely just as functional as it is as if you installed it from pypi. I'm guessing folks just use the parts that work for them if they can satisfy the deps those models need on their own.

I largely tried to make meta-packages that install most of the deps in each major category like science, multi-model, audio, etc. The computer vision extra from Pypi just uses way too many mysterious deps that even if I wanted to get most into conda-forge, there isn't an authoritative source.

I'm sure a lot of folks will use modelscope.hub and other high-level utilities.

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 your PR looks excellent! 🚀

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Feb 20, 2025

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/modelscope/recipe.yaml) and found some lint.

Here's what I've got...

For recipes/modelscope/recipe.yaml:

  • ❌ The recipe must have a build/number section.

For recipes/modelscope/recipe.yaml:

  • ℹ️ Recipes should usually depend on matplotlib-base as opposed to matplotlib so that runtime environments do not require large packages like qt.
  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of modelscope output, you should usually use python ${{ python_min }} for the python entry.
    • For the test.requires section of modelscope output, you should usually use python ${{ python_min }} for the python entry.
    • If the package requires a newer Python version than the currently supported minimum version on conda-forge, you can override the python_min variable by adding a Jinja2 set statement at the top of your recipe (or using an equivalent context variable for v1 recipes).

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/13426729689. Examine the logs at this URL for more detail.

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Feb 20, 2025

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/modelscope/recipe.yaml) and found it was in an excellent condition.

I do have some suggestions for making it better though...

For recipes/modelscope/recipe.yaml:

  • ℹ️ Recipes should usually depend on matplotlib-base as opposed to matplotlib so that runtime environments do not require large packages like qt.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/13426864968. Examine the logs at this URL for more detail.

@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/modelscope/recipe.yaml) and found it was in an excellent condition.

@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/modelscope/recipe.yaml) and found it was in an excellent condition.

I do have some suggestions for making it better though...

For recipes/modelscope/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the run section of modelscope-audio output, you should usually use python >=${{ python_min }} for the python entry.
    • For the run section of modelscope-multimodal output, you should usually use python >=${{ python_min }} for the python entry.
    • For the run section of modelscope-nlp output, you should usually use python >=${{ python_min }} for the python entry.
    • For the run section of modelscope-science output, you should usually use python >=${{ python_min }} for the python entry.
    • For the test.requires section of modelscope-science output, you should usually use python ${{ python_min }} for the python entry.
    • For the run section of modelscope-server output, you should usually use python >=${{ python_min }} for the python entry.
    • If the package requires a newer Python version than the currently supported minimum version on conda-forge, you can override the python_min variable by adding a Jinja2 set statement at the top of your recipe (or using an equivalent context variable for v1 recipes).

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/13429216966. Examine the logs at this URL for more detail.

@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/modelscope/recipe.yaml) and found it was in an excellent condition.

@zbowling
Copy link
Member Author

zbowling commented Feb 21, 2025

@conda-forge/help-python This is ready for review. It's ... a thing. I'm both embarrassed and proud of it. This package is nuts because of the massive number of seemingly optional dependencies but it works for nearly more than half of the use case from Conda now (and probably the most useful use cases) and probably largely works close to as well as it does straight from pypi without installing extra deps from a mysterious Chinese hosted index of binary wheels without much details on where they come from. This package is stupid popular on pypi and most people confine their usages to just a few paths that this version supports but it's an omnibus do everything system

@ocefpaf
Copy link
Member

ocefpaf commented Feb 21, 2025

This one needs someone proficient with the new recipe format for a proper review.

@zbowling
Copy link
Member Author

@conda-forge/help-python

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.

3 participants