Skip to content

TST: Add testing on Python 3.5 on Appveyor. #446

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

Merged
merged 4 commits into from
Jul 26, 2016

Conversation

arokem
Copy link
Member

@arokem arokem commented Apr 13, 2016

Feel free to ignore this. I am trying to understand the failures I am seeing over here: conda-forge/staged-recipes#284

@coveralls
Copy link

Coverage Status

Coverage remained the same at 95.72% when pulling 65dd001 on arokem:appveyor-3.5 into 83d3249 on nipy:master.

@arokem
Copy link
Member Author

arokem commented Apr 13, 2016

OK - please ignore the license to ignore. I have a question: any particular reason the Appveyor thing is running under @Eric89GXL's Appveyor account (rather than an org account)?

@larsoner
Copy link
Contributor

No real reason. Apparently I added AppVeyor support a while back. Let me know if I need to do anything to switch it over.

@coveralls
Copy link

Coverage Status

Coverage remained the same at 95.72% when pulling 2b2f438 on arokem:appveyor-3.5 into 83d3249 on nipy:master.

@codecov-io
Copy link

codecov-io commented Apr 14, 2016

Current coverage is 94.22%

Merging #446 into master will not change coverage

@@             master       #446   diff @@
==========================================
  Files           160        160          
  Lines         21185      21185          
  Methods           0          0          
  Messages          0          0          
  Branches       2265       2265          
==========================================
  Hits          19961      19961          
  Misses          803        803          
  Partials        421        421          

Powered by Codecov. Last updated by 2a9e96f...63c8a49

@arokem
Copy link
Member Author

arokem commented Apr 14, 2016

Huh. It passed (after a few re-pushes). Feel free to merge this, if you think it's a good idea (Appveyor is admittedly a bit of a pain in the neck...)

@lesteve
Copy link

lesteve commented Apr 14, 2016

Looking at https://ci.appveyor.com/project/Eric89GXL/nibabel/build/1.0.694/job/ntqqoxkcha3ywiji#L84, it looks like the python 3.5 AppVeyor build actually uses python 2.7.

@effigies
Copy link
Member

Did something change on the conda end between pushes? From what I've seen, passing is somewhat random, these days, and the errors are usually checksum failures. Maybe a package server that was/is out of sync?

@arokem
Copy link
Member Author

arokem commented Apr 14, 2016

@lesteve : good catch! That's wild. Will investigate
@effigies : no change, as far as I can tell. The failures are probably due to random download failures on Appveyor (see discussion here: ContinuumIO/anaconda-issues#71)

@coveralls
Copy link

Coverage Status

Coverage remained the same at 95.72% when pulling cb87d89 on arokem:appveyor-3.5 into 83d3249 on nipy:master.

@coveralls
Copy link

Coverage Status

Coverage remained the same at 95.72% when pulling 26ecf0c on arokem:appveyor-3.5 into 83d3249 on nipy:master.

@coveralls
Copy link

Coverage Status

Coverage remained the same at 95.72% when pulling 3c40992 on arokem:appveyor-3.5 into 83d3249 on nipy:master.

@matthew-brett
Copy link
Member

Hmm - that's weird - the buildbots have been testing Python 3.5 with Christoph Gohlke's wheels for a while without (these) problems :

http://nipy.bic.berkeley.edu/builders/nibabel-bdist32-35

@arokem
Copy link
Member Author

arokem commented Apr 19, 2016

Yes. It is weird. Any thoughts?

This might be obvious, but a lot of these look like overflow errors to me.
Something about the machine this is running on? Or Anaconda versions of
libraries being weird?

On Tue, Apr 19, 2016 at 10:15 AM, Matthew Brett [email protected]
wrote:

Hmm - that's weird - the buildbots have been testing Python 3.5 with
Christoph Gohlke's wheels for a while without (these) problems :

http://nipy.bic.berkeley.edu/builders/nibabel-bdist32-35


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#446 (comment)

@matthew-brett
Copy link
Member

It's difficult to imagine the precision differences would be due to the machine.

Do you know - does numpy pass its own test suite on this setup?

@arokem
Copy link
Member Author

arokem commented Apr 19, 2016

It seems that it does. For example: https://ci.appveyor.com/project/numpy/numpy/build/1.0.281/job/htein9lmbbgn116y

@matthew-brett
Copy link
Member

I've given you an account on the BIDS windows testing box, called "carly", I've sent details via email.

The way I use the machine is via remote desktop. So I install the Microsoft Remote Desktop app on OSX, then forward the relevant port to my machine with:

ssh -L3389:localhost:3389 myuser@address-of-carly

and start remote desktop pointing with a session pointed to localhost:3389 . You'll need your password to log in though.

The least obtrusive way to get going is to work on a powershell command line inside a Windows docker container, like this:

docker run --rm -ti windowsservercore powershell

This gives you a fresh throwaway container to play in, for which you have admin permissions. See: http://matthew-brett.github.io/pydagogue/windows_containers.html#example-of-installing-into-a-container

@arokem
Copy link
Member Author

arokem commented Apr 20, 2016

OK - I've managed to install Anaconda in there (although not inside the docker container - instead I have installed it only for my user - I apologize if that's more intrusive than necessary), and I manage to replicate the same failures on Carly as the ones we see on Appveyor. It's quite hard for me to make any sense of them, though. The most I can make out is that a lot of them seem to have to do with nan's getting cast into the wrong values (for example, they're supposed to cast to 0, and end up in -128 instead, or they are supposed to cast to 0 and end up in some floating point value (~1.0039) instead. Especially on round-trips, things seem to go wrong (with overflow also happening - 0's going to np.iinfo(np.int64).min instead). Does this ring any bells?

@matthew-brett
Copy link
Member

Yes, sadly it does. We had this kind of problem for an MSVC bug:

#367

numpy/numpy#6685

The tests are - I think - differences from the expected numbers when working with int max values and doing array scaling.

It was extremely hard to track the previous error down, partly because the tests are a little opaque. You can see Ben C struggling manfully with the code in the first PR.

I ended up spending a lot of time taking the test input for working and not working versions (with and without MKL in that case) and comparing the inputs and outputs. Ugh.

@matthew-brett
Copy link
Member

Ariel - any progress here?

@arokem
Copy link
Member Author

arokem commented May 3, 2016

No progress. I haven't had time to look into this more.

On Tue, May 3, 2016 at 11:10 AM, Matthew Brett [email protected]
wrote:

Ariel - any progress here?


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#446 (comment)

@lesteve
Copy link

lesteve commented May 4, 2016

I tracked down one of the failing test (test_nan2zero_scaling) to a numpy clip issue, which for some reason seems to be happening only on Windows with Python 3.5, see numpy/numpy#7601.

@lesteve
Copy link

lesteve commented May 26, 2016

Good news, with the numpy fix from the PR numpy/numpy#7678, I can run the nibabel tests without any failure on my VM. So maybe there is no Python 3.5 specific problem within nibabel. If someone could double-check that would be great.

In the medium term, not sure whether there is an easy way to run the tests with AppVeyor using numpy from master. Alternatively you could wait for a numpy version with the fix to be relased before using Python 3.5 for continuous integration.

@arokem
Copy link
Member Author

arokem commented May 26, 2016

I am +1 for waiting on a numpy release with the fix, before proceeding with this PR.

@lesteve
Copy link

lesteve commented May 27, 2016

FYI the numpy fix is going to be in 1.11.1. The numpy release candidate has been announced a few hours ago so it may not be that long before a numpy release with the fix.

@lesteve
Copy link

lesteve commented Jul 4, 2016

numpy 1.11.1 is available through conda now, so in principle it is just a matter of relaunching the CI tests to make sure the AppVeyor tests pass on Python 3.5 before this PR can be merged.

@arokem
Copy link
Member Author

arokem commented Jul 4, 2016

Thanks for the alert. I just rebased this on top of current master and pushed, which should trigger the CI.

@coveralls
Copy link

coveralls commented Jul 4, 2016

Coverage Status

Coverage remained the same at 95.72% when pulling 65dd001 on arokem:appveyor-3.5 into 83d3249 on nipy:master.

@arokem
Copy link
Member Author

arokem commented Jul 4, 2016

Yep. Looks like everything is coming up green.

I noticed that there is no Python 2/64 bot on Appveyor. Is there any reason for that, or should I add it?

@larsoner
Copy link
Contributor

larsoner commented Jul 4, 2016

I think it was just for testing time, AppVeyor processes serially.

FYI a better solution is probably to use ci-helpers to get Anaconda up on AppVeyor, but that could be another PR when someone gets motivated.

@lesteve
Copy link

lesteve commented Jul 25, 2016

@matthew-brett I reckon this one should be merged.

@matthew-brett
Copy link
Member

Thanks for doing this - merging.

@matthew-brett matthew-brett merged commit a410f03 into nipy:master Jul 26, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants