Skip to content

Testing python noarch recipe on several python versions #2617

@beenje

Description

@beenje

Your question:

CFEP-25 introduced python_min and decided to use that version for testing:

test:
  requires:
    - python {{ python_min }}

The rationale being:

While noarch: python packages may be incompatible with either newer or older Python versions, we judged that testing against the oldest Python version would catch more issues than the other way around.

With conda-build, one version had to be chosen to run the tests.
With the v1 recipe format, python import can be tested with different python versions (python_version accepts a list).

tests:
  - python:
      python_version:
        - ${{ python_min }}.*
        - 3.*

I started to use this pattern when converting my recipes to the new format.
But that raised some questions when I submitted a new recipe to staged-recipes.

I believe that testing against the latest python is important and can catch some issues:

  • the upstream package might be incompatible and has put an upper-bound -> this has to be reflected in the feedstock
  • a dependency might not be compatible - could be not actively maintained or maybe not updated yet on conda-forge -> if it can't be updated, we might have to patch the repodata

Doing a search on conda-forge, it seems that several people started using this pattern: https://github.com/search?q=org%3Aconda-forge+%22-+%24%7B%7B+python_min+%7D%7D%22&type=code

What is the general opinion about testing an upper bound as well?

  1. Testing on an additional python version isn't a good use of CI time?
  2. Should this be let to the feedstock maintainer to decide?
  3. Should it be encouraged?

In any case, it would be good to update the documentation with the community agreement.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions