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

Multi-output recipes might not run test suite in certain cases #4172

Open
h-vetinari opened this issue Jan 10, 2021 · 6 comments
Open

Multi-output recipes might not run test suite in certain cases #4172

h-vetinari opened this issue Jan 10, 2021 · 6 comments
Labels
stale::recovered [bot] recovered after being marked as stale

Comments

@h-vetinari
Copy link
Contributor

The cvxpy-feedstock has been multi-output since @djsutherland's conda-forge/cvxpy-feedstock#6 more than 2 years ago.

The recipe clearly specifies to run a test suite:

outputs:
  - name: cvxpy
    requirements:
      [...]
    test:
      imports:
        - [...]
      requires:
        - nose
      commands:
        - nosetests cvxpy

However, it seems this commands section was never run! Now that this was discovered today (and promptly fixed by @isuruf), it turns out that several packages have been shipping in a broken state for a long time, which is obviously... less than ideal.

The relation between the package-name and whether tests are run for sub-packages is also very confusing to me, but in any case, recipe maintainership (across many packages) is not reasonably possible without being able to trust that conda does something as fundamental as running the test section of the recipe completely.

@mingwandroid
Copy link
Contributor

Rename https://github.com/conda-forge/cvxpy-feedstock/blob/master/recipe/meta.yaml#L5 to something else, like cvxpy-suite (suite is what I use).

Problem is that the top-level package conflicts with an output so the top-level details will get used sometimes and the output details will get used at other times.

A fix to assert on this inside conda-build is long overdue. PRs, as always, very welcome!

@mingwandroid
Copy link
Contributor

It shouldn't be confusing really, the top level package name is irrelevant, so just make it something different.

@github-actions
Copy link

Hi there, thank you for your contribution!

This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically if no further activity occurs.

If you would like this issue to remain open please:

  1. Verify that you can still reproduce the issue at hand
  2. Comment that the issue is still reproducible and include:
    - What OS and version you reproduced the issue on
    - What steps you followed to reproduce the issue

NOTE: If this issue was closed prematurely, please leave a comment.

Thanks!

@github-actions github-actions bot added the stale [bot] marked as stale due to inactivity label May 19, 2023
@h-vetinari
Copy link
Contributor Author

This is still an issue that people trip over very regularly. It should just error if the package: is named identically to one of the outputs:

@jakirkham
Copy link
Member

jakirkham commented May 19, 2023

Wonder if we started writing a recipe format from scratch, whether this is something we could solve by making single output recipes just a special case of multi-output recipes

The situation now is multi-output recipes are more of a bolt-on to single output recipes, which makes sense given the history

However a recipe format that was multi-output aware to start with might avoid issues like this one and others seen with the current multi-output recipe format to date

@github-actions github-actions bot added stale::recovered [bot] recovered after being marked as stale and removed stale [bot] marked as stale due to inactivity labels May 20, 2023
@h-vetinari
Copy link
Contributor Author

Not stale

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale::recovered [bot] recovered after being marked as stale
Projects
Status: 🆕 New
Development

No branches or pull requests

3 participants