Skip to content

Conversation

@forman
Copy link
Contributor

@forman forman commented Oct 21, 2025

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.

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Oct 21, 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/procodile/procodile/recipe.yaml, recipes/eozilla/recipe.yaml, recipes/cuiman/cuiman/recipe.yaml, recipes/appligator/appligator/recipe.yaml, recipes/gavicore/gavicore/recipe.yaml, recipes/wraptile/wraptile/recipe.yaml) and found some lint.

Here's what I've got...

For recipes/procodile/procodile/recipe.yaml:

  • ❌ The homepage item is expected in the about section.
  • ❌ noarch: python recipes are required to have a lower bound on the python version. Typically this means putting python >={{ python_min }} in the run section of your recipe. You may also want to check the upstream source for the package's Python compatibility.

For recipes/procodile/procodile/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python ${{ python_min }}.* for the python entry.
    • For the run section of the recipe, you should usually use the pin python >=${{ python_min }} for the python entry.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/eozilla/recipe.yaml:

  • ❌ The homepage item is expected in the about section.
  • ❌ noarch: python recipes are required to have a lower bound on the python version. Typically this means putting python >={{ python_min }} in the run section of your recipe. You may also want to check the upstream source for the package's Python compatibility.

For recipes/eozilla/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python ${{ python_min }}.* for the python entry.
    • For the run section of the recipe, you should usually use the pin python >=${{ python_min }} for the python entry.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/cuiman/cuiman/recipe.yaml:

  • ❌ The homepage item is expected in the about section.
  • ❌ noarch: python recipes are required to have a lower bound on the python version. Typically this means putting python >={{ python_min }} in the run section of your recipe. You may also want to check the upstream source for the package's Python compatibility.

For recipes/cuiman/cuiman/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python ${{ python_min }}.* for the python entry.
    • For the run section of the recipe, you should usually use the pin python >=${{ python_min }} for the python entry.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/appligator/appligator/recipe.yaml:

  • ❌ The homepage item is expected in the about section.
  • ❌ The license item is expected in the about section.
  • ❌ license_file entry is missing, but is required.
  • ❌ noarch: python recipes are required to have a lower bound on the python version. Typically this means putting python >={{ python_min }} in the run section of your recipe. You may also want to check the upstream source for the package's Python compatibility.

For recipes/appligator/appligator/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python ${{ python_min }}.* for the python entry.
    • For the run section of the recipe, you should usually use the pin python >=${{ python_min }} for the python entry.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/gavicore/gavicore/recipe.yaml:

  • ❌ The homepage item is expected in the about section.
  • ❌ noarch: python recipes are required to have a lower bound on the python version. Typically this means putting python >={{ python_min }} in the run section of your recipe. You may also want to check the upstream source for the package's Python compatibility.

For recipes/gavicore/gavicore/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python ${{ python_min }}.* for the python entry.
    • For the run section of the recipe, you should usually use the pin python >=${{ python_min }} for the python entry.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/wraptile/wraptile/recipe.yaml:

  • ❌ The homepage item is expected in the about section.
  • ❌ noarch: python recipes are required to have a lower bound on the python version. Typically this means putting python >={{ python_min }} in the run section of your recipe. You may also want to check the upstream source for the package's Python compatibility.

For recipes/wraptile/wraptile/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python ${{ python_min }}.* for the python entry.
    • For the run section of the recipe, you should usually use the pin python >=${{ python_min }} for the python entry.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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/18690367460. Examine the logs at this URL for more detail.

@pont-us
Copy link
Contributor

pont-us commented Oct 21, 2025

I am willing to be a maintainer.

@forman
Copy link
Contributor Author

forman commented Oct 21, 2025

I am willing to be a maintainer.

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Oct 21, 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/wraptile/recipe.yaml, recipes/appligator/recipe.yaml, recipes/procodile/recipe.yaml, recipes/cuiman/recipe.yaml, recipes/gavicore/recipe.yaml, recipes/eozilla/recipe.yaml) and found it was in an excellent condition.

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

For recipes/wraptile/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/appligator/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/procodile/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/cuiman/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/gavicore/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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).

For recipes/eozilla/recipe.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the tests[].python.python_version or tests[].requirements.run section of the recipe, you should usually use the pin python_version: ${{ python_min }}.* or python ${{ python_min }}.* for the python_version or 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/19104466294. Examine the logs at this URL for more detail.

@forman
Copy link
Contributor Author

forman commented Oct 22, 2025

Hi @conda-forge/help-python,

The recipes have passed all checks and linting. Is there anything else I need to do to proceed?
Thank you for your help!

@TejasMorbagal
Copy link
Contributor

I am willing to be a maintainer.

@ocefpaf
Copy link
Member

ocefpaf commented Oct 22, 2025

The recipes have passed all checks and linting. Is there anything else I need to do to proceed?

Yes. Please address #31256 (comment).

@@ -0,0 +1,42 @@
context:
version: 0.0.1
python_min: 3.10
Copy link
Member

Choose a reason for hiding this comment

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

Only set python_min if the minimum required version is higher than the conda-forge default.

Suggested change
python_min: 3.10

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@ocefpaf Done. Thanks for the fast feedback!

Copy link
Member

Choose a reason for hiding this comment

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

Please remove that line and all others that are <=3.10.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@ocefpaf
Copy link
Member

ocefpaf commented Oct 22, 2025

Are all these packages just a namespace grab?

@conda-forge/core They are on PyPI, but I'm not sure how to feel about this. We used to review packages :-/

@forman
Copy link
Contributor Author

forman commented Oct 22, 2025

Are all these packages just a namespace grab?

@conda-forge/core They are on PyPI, but I'm not sure how to feel about this. We used to review packages :-/

No, they are true packages, but well, yes, currently empty. Please take a look at eo-tools/eozilla where the new packages in this PR live and will be release from in the future.

I want to ensure that the names of the package we selected would still be available. It took us a some effort to (1) the find the names that our team would agree on, and (2) that the names are still free on PyPI and conda. We want to avoid extra effort in renaming stuff after a name has been taken by someone else before we have a first dev release.

@ocefpaf
Copy link
Member

ocefpaf commented Oct 22, 2025

No, they are true packages, but well, yes, currently empty.

Yeah I would be merging a namespace grab, not a package, also I cannot review a code that is not here. The summary doesn't even say what they will do. I do not feel comfortable doing this b/c I cannot say what they will do once published. Sure, an existing package can change as it evolves, but in this case there isn't one and whatever I approve here is not what it will be once released.

@conda-forge/core, if anyone wants to take over this review, please do.

@ocefpaf
Copy link
Member

ocefpaf commented Oct 22, 2025

Note that I'm not blocking the merge. I just don't want to be the one doing it.

@forman
Copy link
Contributor Author

forman commented Oct 22, 2025

Yeah I would be merging a namespace grab, not a package, also I cannot review a code that is not here.

I'll provide the first releases with complete metadata asap.

@h-vetinari
Copy link
Member

Hey, just a quick note that we're discussing this case in the larger context of how to deal with such situations in conda-forge/cfep#64. Overall, I think we'll tend to allow it when there's good reason (I can understand that it's hard to find a name that's free both on PyPI and on conda-forge, and we want to enable people to pull that off); you'll just need a little bit more patience please. Once the CFEP is through, we should be able to get this done.

@forman
Copy link
Contributor Author

forman commented Nov 5, 2025

... you'll just need a little bit more patience please. Once the CFEP is through, we should be able to get this done.

Hi @h-vetinari, thanks so much for taking care! However, I'm planning to close this PR and instead place 6 individual ones with recipes generated by grayskull from the related functional and already published PyPI packages with same names. This is because I realized (a little late) that I cannot get the 6 packages deployed at once because they depend on each other in a certain order.

@h-vetinari
Copy link
Member

This is because I realized (a little late) that I cannot get the 6 packages deployed at once because they depend on each other in a certain order.

Recipes within a PR here are allowed to depend on each other (except circularly, of course), and will be built in the correct order. So you don't need to break up the PR, unless that helps your workflow (or the reviewers).

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Nov 5, 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/eozilla/meta.yaml, recipes/gavicore/meta.yaml, recipes/cuiman/meta.yaml, recipes/procodile/meta.yaml, recipes/wraptile/meta.yaml, recipes/appligator/meta.yaml) and found some lint.

Here's what I've got...

For recipes/eozilla/meta.yaml:

  • ℹ️ No valid build backend found for Python recipe for package eozilla using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.
  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python {{ python_min }} for the python entry.
    • For the run section of the recipe, you should usually use the pin python >={{ python_min }} for the python entry.
    • For the test.requires section of the recipe, you should usually use the pin 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).

For recipes/gavicore/meta.yaml:

  • ℹ️ No valid build backend found for Python recipe for package gavicore using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.
  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python {{ python_min }} for the python entry.
    • For the run section of the recipe, you should usually use the pin python >={{ python_min }} for the python entry.
    • For the test.requires section of the recipe, you should usually use the pin 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).

For recipes/cuiman/meta.yaml:

  • ❌ The home item is expected in the about section.
  • ❌ The about section contained an unexpected subsection name. homepage is not a valid subsection name.

For recipes/cuiman/meta.yaml:

  • ℹ️ No valid build backend found for Python recipe for package cuiman using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.
  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python {{ python_min }} for the python entry.
    • For the run section of the recipe, you should usually use the pin python >={{ python_min }} for the python entry.
    • For the test.requires section of the recipe, you should usually use the pin 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).

For recipes/procodile/meta.yaml:

  • ℹ️ No valid build backend found for Python recipe for package procodile using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.
  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python {{ python_min }} for the python entry.
    • For the run section of the recipe, you should usually use the pin python >={{ python_min }} for the python entry.
    • For the test.requires section of the recipe, you should usually use the pin 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).

For recipes/wraptile/meta.yaml:

  • ℹ️ No valid build backend found for Python recipe for package wraptile using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.
  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python {{ python_min }} for the python entry.
    • For the run section of the recipe, you should usually use the pin python >={{ python_min }} for the python entry.
    • For the test.requires section of the recipe, you should usually use the pin 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).

For recipes/appligator/meta.yaml:

  • ℹ️ No valid build backend found for Python recipe for package appligator using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.
  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python {{ python_min }} for the python entry.
    • For the run section of the recipe, you should usually use the pin python >={{ python_min }} for the python entry.
    • For the test.requires section of the recipe, you should usually use the pin 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/19105809339. 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/gavicore/meta.yaml, recipes/procodile/meta.yaml, recipes/appligator/meta.yaml, recipes/wraptile/meta.yaml, recipes/eozilla/meta.yaml, recipes/cuiman/meta.yaml) and found it was in an excellent condition.

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

For recipes/gavicore/meta.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the run section of the recipe, you should usually use the pin 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).
  • ℹ️ top-level output has some malformed specs:
  • In section run: python >=$9999
    Requirement spec fields should match the syntax name [version [build]]to avoid known issues in conda-build. For example, instead of name =version=build, use name version.* build. There should be no spaces between version operators and versions either: python >= 3.8 should be python >=3.8.

For recipes/procodile/meta.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the run section of the recipe, you should usually use the pin 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).
  • ℹ️ top-level output has some malformed specs:
  • In section run: python >=$9999
    Requirement spec fields should match the syntax name [version [build]]to avoid known issues in conda-build. For example, instead of name =version=build, use name version.* build. There should be no spaces between version operators and versions either: python >= 3.8 should be python >=3.8.

For recipes/appligator/meta.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the run section of the recipe, you should usually use the pin 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).
  • ℹ️ top-level output has some malformed specs:
  • In section run: python >=$9999
    Requirement spec fields should match the syntax name [version [build]]to avoid known issues in conda-build. For example, instead of name =version=build, use name version.* build. There should be no spaces between version operators and versions either: python >= 3.8 should be python >=3.8.

For recipes/wraptile/meta.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of the recipe, you should usually use the pin python {{ python_min }} for the python entry.
    • For the run section of the recipe, you should usually use the pin 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).
  • ℹ️ top-level output has some malformed specs:
  • In section host: python $9999
  • In section run: python >=$9999
    Requirement spec fields should match the syntax name [version [build]]to avoid known issues in conda-build. For example, instead of name =version=build, use name version.* build. There should be no spaces between version operators and versions either: python >= 3.8 should be python >=3.8.

For recipes/eozilla/meta.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the run section of the recipe, you should usually use the pin 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).
  • ℹ️ top-level output has some malformed specs:
  • In section run: python >=$9999
    Requirement spec fields should match the syntax name [version [build]]to avoid known issues in conda-build. For example, instead of name =version=build, use name version.* build. There should be no spaces between version operators and versions either: python >= 3.8 should be python >=3.8.

For recipes/cuiman/meta.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the run section of the recipe, you should usually use the pin 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).
  • ℹ️ top-level output has some malformed specs:
  • In section run: python >=$9999
    Requirement spec fields should match the syntax name [version [build]]to avoid known issues in conda-build. For example, instead of name =version=build, use name version.* build. There should be no spaces between version operators and versions either: python >= 3.8 should be python >=3.8.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/19106146546. 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/appligator/meta.yaml, recipes/wraptile/meta.yaml, recipes/procodile/meta.yaml, recipes/eozilla/meta.yaml, recipes/gavicore/meta.yaml, recipes/cuiman/meta.yaml) and found it was in an excellent condition.

@forman
Copy link
Contributor Author

forman commented Nov 5, 2025

Hi @conda-forge/help-python,

The recipes have passed all checks and linting. Is there anything else I need to do to proceed?
Thank you for your help!

FYI @ocefpaf & @h-vetinari: all packages are now fully functional & tested, just as their counterparts on PyPI.

Copy link
Member

@h-vetinari h-vetinari left a comment

Choose a reason for hiding this comment

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

This LGTM! Thanks for your patience on this! :)

PS. I love the suite of reptile-tech-puns! I had to squint at cuiman to get caiman though, and I had never heard of a gavial before 😅

@h-vetinari h-vetinari merged commit c15cc9e into conda-forge:main Nov 10, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants