-
-
Notifications
You must be signed in to change notification settings - Fork 17
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 the test suite #70
Conversation
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 ( |
@conda-forge-admin, please rerender |
Hi! This is the friendly automated conda-forge-webservice. |
recipe/meta.yaml
Outdated
@@ -33,6 +35,9 @@ requirements: | |||
- mkl-service | |||
- cxx-compiler # [not win] | |||
- m2w64-toolchain # [win] | |||
- libpython # [win] | |||
- numba # [not linux] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
numba is not a pymc3 dependency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had some reason, I don't remember what though.
My guess is that some test was failing without. But if so, maybe that test was optional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having numba in the dependencies tricks conda into resolving a compatible of dependencies.
A while back I did really extensive testing, comparing different sets of dependencies, diffing the resulting environments and checking if PyMC3 was importing without warnings...
That's why numba is included in https://github.com/pymc-devs/pymc3/wiki/Installation-Guide-(Windows)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess they just did a better job at defining the dependencies compared to the authors of Theano/Aesara conda recipes.
@@ -33,6 +35,9 @@ requirements: | |||
- mkl-service | |||
- cxx-compiler # [not win] | |||
- m2w64-toolchain # [win] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think these dependencies should be in the aesara feedstock, not this one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, maybe it's best to keep them for this version and try to fix in Aesara soon afterwards? After removing this we'd then ≤-pin Aesara to the packages which are fixed?
BTW, I don't see Aesara as a direct dependency here. Is it indirect?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
theano-pymc
was renamed to aesara
, but pymc3 stable does not yet depend on it. So we might need to wait until 1. aesara has a reliable compile chain dependencies, and 2. we have a pymc3 release that depends on aesara instead of theano-pymc.
recipe/meta.yaml
Outdated
@@ -33,6 +35,9 @@ requirements: | |||
- mkl-service |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is also optional.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean that numpy and pandas are optional, or something about the pinning is optional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mkl-service
is not a requirement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, sorry, it seems that GitHub glitched and was showing pandas/numpy instead of mkl-service.
@twiecki please feel free to commit directly yourself. I enabled edits by maintainers. |
Some broken pip dependencies: And under Windows, it's showing a stack overflow. 😣 Still waiting for more stuff to complete. |
The test suite is too large to run in one test job on Windows. It's also reproducible locally that none of these tests fail individually, but give the stack overflow when all of them run in the same |
Hi! This is the friendly automated conda-forge-linting service. I was trying to look for recipes to lint for you, but it appears we have a merge conflict. Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug. |
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 ( |
I think we should figure out what adding |
@twiecki I completely agree, I just want to reach a state where the CI tests are passing. Now it's saying pytest failed, even though there were no errors and only warnings? Any idea what's going on? |
I am getting closer, thanks very much @michaelosthege for the suggestion to run the tests individually to avoid the stack overflow under Windows. Now just Windows is failing with some theano compilation errors: 3.7:
Do we need to mess with cxxflags? Or is this a BLAS thing? Any ideas @twiecki or @michaelosthege? |
This problems was mentioned here: pymc-devs/pymc#4749 (seems to be a Perhaps the latter is the safer fix? |
In the testing environment, I'm not actually sure how one should set compiler flags from conda. Primarily because I don't work with C++ much, so it's quite mysterious to me. And secondly because it seems very risky and complicated. For example, if we mess with the CXXFLAGS environment variable, what if it conflicts with other programs? I'm pretty stuck on a good way forward. Any suggestions? |
The compiler flag I think we would set in Curious if @michaelosthege has any ideas. |
I'm a biologist. This is pretty much black magic to me.
Maybe check out this for comparison? https://github.com/conda-forge/numba-feedstock/blob/master/recipe/meta.yaml |
@conda-forge-admin, please rerender |
@conda-forge-admin, please rerender |
Hi! This is the friendly automated conda-forge-webservice. |
@conda-forge-admin, please rerender |
I rebased on the new version. CI seems to be down. I'll probably have to try again tomorrow. |
restarted the tests (I think). |
@conda-forge-admin, please rerender |
In Python 3.7 there is a missing DLL when loading netcdf4. In 3.8 and 3.9 there is an error about the following failed assertion in domains = paramdomains.copy()
domains["value"] = domain
for pt in product(domains, n_samples=n_samples):
pt = Point(pt, model=model)
> assert_almost_equal(
logp(pt),
logp_reference(pt),
decimal=decimal,
err_msg=str(pt),
)
E AssertionError:
E Arrays are not almost equal to 6 decimals
E {'alpha': array(20.), 'beta': array(0.9), 'value': array(100.)}
E Mismatched elements: 1 / 1 (100%)
E Max absolute difference: 3.86856262e+25
E Max relative difference: 4.70326902e-16
E x: array(-8.225263e+40)
E y: array(-8.225263e+40)
pymc3\tests\test_distributions.py:611: AssertionError It looks like numpy's definition of being equal to 6 digits means "6 digits after the 1's place" instead of "6 significant digits". |
@maresb I merged the mkl-services PR. Should we revisit this? |
c5b1701
to
0098ec5
Compare
@twiecki, sure! I just rebased on master, so hopefully some of the latest changes have fixed some of the issues. I don't have any time to work on this, but please feel free to commit to this branch. Also please see the commented-out changes. For instance, we may need to pin the |
@conda-forge-admin, please rerender |
Windows is segfaulting right away on OSX/3.7 stalled out mysteriously. Maybe it was a glitch. I'll rebase master and try again... |
d1f3bb3
to
d47ad6a
Compare
@conda-forge-admin, please rerender |
Hi! This is the friendly automated conda-forge-webservice. |
Windows tests are still segfaulting. :( @michaelosthege, do you have any ideas? |
@maresb the tests segfault on Windows when you run too much at once. Where "too much" is something like less than a quarter of all tests. Looks like the CI here is trying to run everything at once.. |
@michaelosthege, on precisely this advice from you, I already split the tests so that each test file runs individually. 😉 Unfortunately it's still segfaulting on Windows, so I was hoping that you might have another clever idea. |
@maresb oh I see. conda activate log
When I see this on my PC I trash the environment right away and start over. It may work, but this is definitely not normal. Do you know which test causes the segfault? I couldn't see that from the logs.. |
This is now mostly obsolete, so I'm closing this out. It could however be a useful reference in the future if we want to run pytest in |
Checklist
0
(if the version changed)conda-smithy
(Use the phrase@conda-forge-admin, please rerender
in a comment in this PR for automated rerendering)