-
Notifications
You must be signed in to change notification settings - Fork 427
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
run_exports not applied when channel does not provide channeldata.json #3583
Comments
@jjhelmus is this why we are missing run_exports for our conda-forge aarch64 and ppc64le packages? |
Yes, moving the effected conda-build aarch64 packages (3.18.6 3.18.5 3.18.4) to a broken label may be the easiest fix until this is changed in conda-build itself. |
There's something wrong with run_exports on linux-64 as well. When I run meta.yaml: $ cat test/meta.yaml
package:
name: testing
version: 1.0
source:
build:
number: 1
requirements:
build: []
host:
- fftw
run:
- fftw
Adding in variants from internal_defaults
No numpy version specified in conda_build_config.yaml. Falling back to default numpy value of 1.11
Attempting to finalize metadata for testing
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done
--------------
Hash contents:
--------------
{}
----------
meta.yaml:
----------
package:
name: testing
version: '1.0'
build:
number: '1'
requirements:
host:
- libgcc-ng 9.1.0 hdf63c60_0
- libgfortran-ng 7.3.0 hdf63c60_0
- fftw 3.3.8 nompi_h7f3a6c3_1105
run:
- fftw * mpi_openmpi_*
extra:
copy_test_source_files: true
final: true
FWIW, I confirmed that this does not happen with conda-build 3.18.3 and does with 3.18.4-6. |
For further detail about what might make this case weird: there are three builds of fftw 3.3.8: |
Sadly, we released over 20 packages on the xeus stack making use of the broken version of conda build unfortunately, and there are as many binders that are broken. |
Maybe it would be worth your time to add tests to the conda forge
infrastructure or whatever you use so that this doesn't bite you again. Or
perhaps a test in conda build's test suite?
…On Wed, Jul 3, 2019, 12:19 Sylvain Corlay ***@***.***> wrote:
Sadly, we released over 20 packages on the xeus stack making use of the
broken version of conda build unfortunately, and there are as many binders
that are broken.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#3583?email_source=notifications&email_token=AAAJL6MDBOUNJUGRMI6K7PLP5TNRVA5CNFSM4H4IVTPKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZFD7HQ#issuecomment-508182430>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAAJL6NXA4XAIVFZLNVARSDP5TNRVANCNFSM4H4IVTPA>
.
|
We test that artefacts are properly produced. Although run-exports being completely ignored looks like a rather major issue for a release... |
But you apparently don't test that libraries are correctly loaded at test time - if you did, you would have caught this. Run-exports is not completely ignored. It works fine for channels that have channeldata.json. It is tested, and those tests pass. Since you depend on a channel that does not have channeldata.json, perhaps it is worth your time to invest time in conda-build so that it won't break for you in the future. |
Yeah we are not testing the produced runtime but that should be easily fixed (trying to launch the kernel at least if not running the test suite). Investing into conda-build core at the moment would really hard in terms of bandwidth for the team. |
I have never asked you to fix it. I have asked you to help write tests for functionality that you depend on, especially when our tests cover our user cases, but not yours. |
Sounds good. Would be happy to add such tests! |
Testing issues like this would be helped a lot by conda-build supporting multiple test envs. For instance, this issue snuck through on mpich because the test environment had the compiler packages, which included the dependencies missing from run_exports. It would also enable testing e.g. ABI compatibility by running tests against latest and oldest allowed versions of dependencies, which are currently not testable. |
FWIW, this does not appear to be fixed in 3.18.7. this aarch64 build is still missing run_export s from gfortran See in the tests for openmpi:
when it should have libgfortran according to the strong run_exports on gfortran_linux-aarch64, since it has a build dependency on all the compilers (c, cxx, fortran). |
But we are not yet using conda-build 3.18.7 but instead 3.17.8 in the linked PR, no? |
That PR's using 3.18.7 |
Closing this particular issue since the lack of channeldata.json has been fixed. The related issue where different builds/hashes express different |
Hi there, thank you for your contribution! This issue has been automatically locked because it has not had recent activity after being closed. Please open a new issue if needed. Thanks! |
As of #3561, run exports are extracted from channeldata.json rather than the packages themselves. This speeds up rendering time but will cause run exports to not be applied if the channel from which the package is supplied does not provide channeldata.json. Most channels on Anaconda.org do not provide channeldata.json.
A simple example:
Building
exporty
and locally and renderingexample
gives a correct rendering with run_export applied:Using the uploaded
exporty
package on Anaconda.org results in no run_exports applied:The text was updated successfully, but these errors were encountered: