Thanks to visit codestin.com
Credit goes to github.com

Skip to content

WIP: testing on windows and conda packages/ wheels for master #5604

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 19 commits into from
Dec 4, 2015

Conversation

jankatins
Copy link
Contributor

Unsolved todos now in #5629

Current Todo:

  • make appveyor fail if the tests fail...
  • investigate the py35 failure...
  • split out the wheel workaround into it's own commit
  • decide what to do about tkagg -> is that needed? -> would need a installer for the tcl files (see conda bld.bat)
  • investigate what changed in the conda freetype package >= 2.6 -> checked for file is missing there
  • and move travis helper scripts to ci
  • build a functools32 package until conda has such a package available... Until then: no py27 conda packages...
  • now the include dirs get included twice?
  • add a rule to zip up the resulting images to investigate the image test failures
  • Finally: got through the tests failures and open issues for them...
  • get it to run...
  • re-enable travis
  • add python dirs to default include dirs to make packaging on conda easier -> extra commit/PR
  • add to the build matrix: 64bit Py35 34, 27 at the first position, py27, 35 32bit last

See also the discussion at #5595

Closes: #5595
Closes: #5610 # test failures on windows
Closes: #5460 # PR which fixes a testfailure originally reported in #5446, merged into this PR
Closes: #5278 # namedTempfile on windows problem

@jankatins
Copy link
Contributor Author

Not that I currently amend and push -f until it works (which up to now it doesn't :-() For faster build times, the tests are currently disabled...

@@ -0,0 +1,96 @@
# Sample script to install Miniconda under Windows
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just in terms of organization, we already have some Travis-specific tools in .travis.

I think I'd prefer to see this sort of structure:

integration
+- travis (existing content in .travis)
+- appveyor
+- conda

and leave tools for just developer tools as it is now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can do, I just didn't want to add to much to the main dir...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. I think we'd just be adding one new top-level directory (integration) under which all of this CI/build management stuff would live. Probably should vendor our .deb and .rpm specs there, too someday.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I use "ci" which I found easier to identify than "integration" (It's also used be pandas)...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

didn't yet push the travis stuff to that dir...

@jankatins jankatins force-pushed the master branch 2 times, most recently from 578d6d0 to 436bbdb Compare December 2, 2015 14:38
@jankatins
Copy link
Contributor Author

I will remove .travis.yml in the next push to not swamp travis with the repushes...

@jankatins jankatins force-pushed the master branch 3 times, most recently from 8105a49 to 1ff4e5e Compare December 2, 2015 15:23
@tacaswell
Copy link
Member

Is there a flag on circleci that someone with admin rights needs to flip?

@jankatins
Copy link
Contributor Author

On appveyor: someone with owner/admin rights on the github matplotlib org needs to login there and enable it.

@mdboom
Copy link
Member

mdboom commented Dec 2, 2015

@tacaswell: Do you mean circleci or appveyor? I experimented with a bunch of these at one time, so I wouldn't be surprised if we have accounts a number of places already.

@JanSchulz: I'll try to enable appveyor.

@mdboom
Copy link
Member

mdboom commented Dec 2, 2015

I added matplotlib/matplotlib as a repo on appveyor. Not sure how to fire this off again, though. Maybe you need to push something to this branch.

@tacaswell
Copy link
Member

Sorry, meant appveyor, just having issues keeping them all straight 🐑

@jankatins
Copy link
Contributor Author

@mdboom Thanks! Currently I have a appveyor build my master branch. Not sure what it does with PRs... We'll see on my next push :-)

Latest problem:

on 2.7, 32bit:

running build_ext
building 'matplotlib.ft2font' extension
creating build\temp.win32-2.7
creating build\temp.win32-2.7\Release
creating build\temp.win32-2.7\Release\src
C:\Users\appveyor\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DFREETYPE_BUILD_TYPE=system -DPY_ARRAY_UNIQUE_SYMBOL=MPL_matplotlib_ft2font_ARRAY_API -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -IC:\Python27_32\envs\_build\lib\site-packages\numpy\core\include -I. -IC:\Python27_32\envs\_build\include -IC:\Python27_32\envs\_build\PC /Tpsrc/ft2font.cpp /Fobuild\temp.win32-2.7\Release\src/ft2font.obj
ft2font.cpp
C:\Users\appveyor\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xlocale(342) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc 
c:\python27_32\conda-bld\work\src\ft2font.h(10) : fatal error C1083: Cannot open include file: 'ft2build.h': No such file or directory 
error: command 'C:\\Users\\appveyor\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\cl.exe' failed with exit status 2

[test-environment] C:\Python27_32\conda-bld\work>if errorlevel 1 exit 1 
C:\Python27_32\conda-bld\work

on 3.5, 64bit:

running build_ext
building 'matplotlib.ft2font' extension
creating build\temp.win-amd64-3.5
creating build\temp.win-amd64-3.5\Release
creating build\temp.win-amd64-3.5\Release\src
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -DFREETYPE_BUILD_TYPE=system -DPY_ARRAY_UNIQUE_SYMBOL=MPL_matplotlib_ft2font_ARRAY_API -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -IC:\Python35_64\envs\_build\lib\site-packages\numpy\core\include -I. -IC:\Python35_64\envs\_build\include -IC:\Python35_64\envs\_build\include -IC:\Python35_64\envs\_build\Library\include /EHsc /Tpsrc/ft2font.cpp /Fobuild\temp.win-amd64-3.5\Release\src/ft2font.obj
ft2font.cpp
src/ft2font.cpp(5): fatal error C1083: Cannot open include file: 'string': No such file or directory 
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64\\cl.exe' failed with exit status 2

[test-environment] C:\Python35_64\conda-bld\work>if errorlevel 1 exit 1 

@tacaswell
Copy link
Member

Does anything in https://github.com/jbmohler/matplotlib-winbuild help?

@jankatins
Copy link
Contributor Author

@tacaswell The normal wheel build works, I think it's something which is missing in the conda build environment... Right now I guess the include for MSVC?

@jankatins
Copy link
Contributor Author

@mdboom: can you post a link to the project page on appveyor? Mine looks like https://ci.appveyor.com/project/JanSchulz/matplotlib I tried https://ci.appveyor.com/project/matplotlib/matplotlib, but that didn't work

@jankatins jankatins force-pushed the master branch 2 times, most recently from ce92b8f to 943f8bf Compare December 2, 2015 16:40
@tacaswell
Copy link
Member

I seem to have attached it to my account by randomly pressing buttons... https://ci.appveyor.com/project/tacaswell/matplotlib

@mdboom
Copy link
Member

mdboom commented Dec 2, 2015

I seem to have attached it to my account by randomly pressing buttons... https://ci.appveyor.com/project/tacaswell/matplotlib

I also did the same, I guess. It's set up for the matplotlib/matplotlib repo, but it puts it under project/mdboom/matplotlib.

@mdboom
Copy link
Member

mdboom commented Dec 2, 2015

Looks like appveyor is reporting back here now. Progress!

@jankatins
Copy link
Contributor Author

@tacaswell @mdboom One of you should probably remove the appveyoir integration: currently both of you run builds for each PR:
https://ci.appveyor.com/project/mdboom/matplotlib/history
https://ci.appveyor.com/project/tacaswell/matplotlib/history

github shows me the mdboom variant, but at some point I got the link to tacaswell.

3.5 does not need a sdk, so don't set the variables in that case...
@tacaswell
Copy link
Member

@mdboom I deleted mine

I have no idea what is wrong with it and the easiest way would be to
replace it with one which is known to work:
https://github.com/pelson/Obvious-CI/blob/master/scripts/obvci_appveyor_python_build_env.cmd
@jankatins
Copy link
Contributor Author

Yay, appveyor and travis are green...

@tacaswell
Copy link
Member

@JanSchulz I am inclined to merge this now that the tests are passing so the rest of the PRs can report success on windows and iterate on the build products in a new PR.

@jankatins
Copy link
Contributor Author

I'm all for it... I would add the rest of the todos to another issue/PR and get them fixed there... I've also build functools32 and matplotlib in my package_builder repo and the packages are currently uplaoding: https://anaconda.org/janschulz I will update the conda packaging for osx/linux from that, so one could build conda packags via conda build ci/conda_recipe (and doing some steps to set the env vars beforehand...)

tacaswell added a commit that referenced this pull request Dec 4, 2015
WIP: testing on windows and conda packages/ wheels for master
@tacaswell tacaswell merged commit 95b67ff into matplotlib:master Dec 4, 2015
@QuLogic QuLogic added this to the proposed next point release (2.1) milestone Dec 4, 2015
@tacaswell
Copy link
Member

👍 thanks!

Should probably back-port this to 2.0.x ? @mdboom

@jankatins
Copy link
Contributor Author

If someone wants to test it: https://anaconda.org/janschulz/matplotlib/files

conda install -c https://conda.anaconda.org/janschulz matplotlib

[These are packages form my package builder repo, so they are available in a conda repo (for osx+win+linux and not win-only in the appveyor artefact). On the other hand: no wheels...]

__version__ = versioneer.get_version()

+# For conda builds...
+with open("__conda_version__.txt", "w") as f:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not necessary (and needs to be removed). Runtime determination of the version can be done with:

{% set data = load_setuptools() %}
package:
   name: my_package
   version: {{ data.get('version') }}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ui, first time I see that way to specify the version. I used the docs to get to that patch: http://conda.pydata.org/docs/building/meta-yaml.html#package-version

Why the "needs to be removed"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the "needs to be removed"?

I hope it didn't come across as rude - I just wanted to be clear that if we remove this form, we fix the problem you describe in the recipe whereby:

# Note also that our setup.py script, which is called by conda-build, writes
+  # a __conda_version__.txt file, so the version number on the binary package
+  # is set dynamically. This unfortunately mean that conda build --output
+  # doesn't really work.
```.

jmehne pushed a commit to jmehne/matplotlib that referenced this pull request Dec 4, 2015
WIP: testing on windows and conda packages/ wheels for master
@jankatins
Copy link
Contributor Author

The curently unsolved windows build issues are now handled in #5629

@pelson I added you comments as Todos

tacaswell added a commit that referenced this pull request Dec 15, 2015
Remove setup.py tests and adapt docs to use tests.py

conflicts in setup.py due to parts of #5604 being back-ported
as well.  Removed the windows bdist patch code to resolve.
tacaswell pushed a commit that referenced this pull request Jan 2, 2016
This commit squashes

 87c968b
 a30ec66

and cherry-picks them to the v1.5.x branch.  These commits were merged
to master as part of #5604 which was not backported en-mass.

Original commit messages:

 Do not run Windows' file system convert tool
 On Windows, initialize the animation.convert_path setting from the Registry
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Testfailures on windows automatically build windows conda packages and wheels in master
8 participants