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

Specifying {{ blas_impl }} in test-reqs only causes builds for each blas-variant #3947

Open
h-vetinari opened this issue May 7, 2020 · 4 comments
Labels
stale::recovered [bot] recovered after being marked as stale

Comments

@h-vetinari
Copy link
Contributor

I'm hitting this in conda-forge/staged-recipes#11337, where the package should in principle be compatible with all blas variants. However, I wanted to make sure that it's tested against all blas variants, and so I had a recipe along the lines of (simplified for illustration):

requirements:
  build:
    - {{ compiler('cxx') }}
    - [...]
  host:
    - python
    - [...]
    - libblas
    - liblapack
  run:
    - [...]
    - libblas
    - liblapack

test:
  requires:
    # make sure we test with all blas implementations
    - blas * *{{ blas_impl }}
    - [...]
  commands:
    - [run test suite]

This however causes a build for each blas-variant (staged-recipes builds [py36, py37] x blas_impl):

Solving environment: ...working... done
BUILD START: ['faiss-cpu-1.6.3-h4fbf4f8_0.tar.bz2', 'faiss-cpu-1.6.3-h9246793_0.tar.bz2', 'faiss-cpu-1.6.3-h0851671_0.tar.bz2', 'faiss-cpu-1.6.3-h810b19b_0.tar.bz2', 'faiss-cpu-1.6.3-h382abfb_0.tar.bz2', 'faiss-cpu-1.6.3-he41370b_0.tar.bz2']

and consequent warnings that there's overlap between the packages

Exact overlap between lib/python3.6/site-packages/faiss-1.6.3.dist-info/INSTALLER in packages faiss-cpu and faiss-cpu
WARNING conda_build.build:build(2162): Exact overlap between lib/python3.6/site-packages/faiss-1.6.3.dist-info/INSTALLER in packages faiss-cpu and faiss-cpu
[...]

If everything worked flawlessly, the added testing against the different blas-variants shouldn't be necessary, but as it turns out, there was at least one bug in scipy (resp. its packaging) uncovered by this.

All things considered, I'm thinking that crucial packages like numpy/scipy should probably err on the side of caution and test against all blas-variants, but this seems to be not possible currently without duplicating builds, hence this issue.

@github-actions
Copy link

github-actions bot commented Apr 9, 2023

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 Apr 9, 2023
@h-vetinari
Copy link
Contributor Author

This would actually still be really nice to have: i.e. separate the parsing for the variables between build & test, and run the tests against multiple environments within the same build job, if a dependency with several pins only appears in the test section

For conda-forge's BLAS testing in numpy / scipy I'm currently doing this by hand due to this issue.

@h-vetinari
Copy link
Contributor Author

It seems the bot does not pick up the new comment - could you remove the stale label please, @kenodegard?

@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 Apr 24, 2023
@kenodegard
Copy link
Contributor

@h-vetinari FYI the stale bot runs on a nightly schedule, not based on web hooks

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

2 participants