-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
CI: add appveyor script to build Windows wheels #6969
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
Conversation
Is there a matplotlib appveyor account? Can someone give me access so I can set up uploading to the Rackspace wheel container? |
The tests are run on @mdboom 's account. Is there a way to get org accounts now? |
I'm not sure - maybe the numpy and astropy accounts I have access to were just personal accounts with suitable names. |
I think you just need to create a new account for it. |
0b95919
to
5c1da5a
Compare
@cgohlke - any insight into the error finding the png headers here ? https://ci.appveyor.com/project/mdboom/matplotlib/build/1.0.2411/job/oo5ajbkacrt9i0ma#L367 |
I think @JanSchulz spent a long time debugging libpng issues when setting this up originally. |
I had to change a few things in setup*.py to get it building out of the box, but that was more about libfreetype: https://github.com/matplotlib/matplotlib/commits/master/setupext.py?author=janschulz The png stuff look actually good:
(the error comes from using conda-forge libpng, which does not ship a unversioned copy of the header file for libpng named The visualtests script is only to generate a html file so that the image comparison tests can be viewed in a browser (showing the failures at the top...) |
Ok, I think you also need 3aa9eed and d53f902 so that the conda dirs are picked up in the script and maybe more from https://github.com/matplotlib/matplotlib/commits/master/setupext.py?author=janschulz |
# these should show no z, png, or freetype dll... | ||
- set "DUMPBIN=%VS140COMNTOOLS%\..\..\VC\bin\dumpbin.exe" | ||
#- cmd: '"%DUMPBIN%" /DEPENDENTS lib\matplotlib\_png*.pyd' | ||
#- cmd: '"%DUMPBIN%" /DEPENDENTS lib\matplotlib\ft2font*.pyd' |
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.
You might want to uncomment these two to see that they don't include wrong stuff (the next three lines should find prevent that, but to be sure...)
Now there is
which might need https://github.com/matplotlib/matplotlib/commits/b38f558be986e75d31f30cf794409a50f84b906e/lib/matplotlib/tests/test_patches.py?author=janschulz |
And maybe some more from #5922 -> everything with |
dcbb41d
to
75ae5b5
Compare
Current failure:
|
The windows failure seem to be again some tolerance problems in some tests which were already touched in this PR... |
e15e7f9
to
5433e79
Compare
When we release, we will want to build the Windows wheels as well.
conda installs includes/libs in <env_dir>\Library, so adding this dir makes installing under conda much easier.
From suggestion by Jan Schulz.
Makes it possible to use the local freetype config option in setup.cfg. Parts of this commit are from https://github.com/jbmohler/matplotlib-winbuild
affected: matplotlib.tests.test_patches.test_wedge_range.test (RMS 0.059) (x64,27) matplotlib.tests.test_patches.test_wedge_range.test (RMS 0.059) (x64,34) matplotlib.tests.test_patches.test_wedge_range.test (RMS 0.059) (x86,27) it seems that only the middle figure in the last row is different. Up the tolerance on windows to let the tests pass.
Add and use script to remove baseline test images from Windows wheel.
cmd shell does not do wildcard expansion.
affected: * matplotlib.tests.test_triangulation.test_tri_smooth_gradient.test (RMS 0.014) (x64,35) The diff looks pitch black to me... -> up the tolerance...
5433e79
to
9c450bb
Compare
Also fixed a problem in an error message when bytes were appended to a string (fails on py3.x) by using %. One of the errors before: ====================================================================== ERROR: matplotlib.tests.test_backend_ps.test_savefig_to_stringio_with_usetex ---------------------------------------------------------------------- Traceback (most recent call last): File "lib\site-packages\nose\case.py", line 198, in runTest self.test(*self.arg) File "lib\matplotlib\testing\decorators.py", line 152, in wrapped_callable func(*args, **kwargs) File "lib\matplotlib\testing\decorators.py", line 55, in failer result = f(*args, **kwargs) File "lib\matplotlib\tests\test_backend_ps.py", line 77, in test_savefig_to_stringio_with_usetex _test_savefig_to_stringio() File "lib\matplotlib\tests\test_backend_ps.py", line 40, in _test_savefig_to_stringio fig.savefig(buffer, format=format) File "lib\matplotlib\figure.py", line 1698, in savefig self.canvas.print_figure(*args, **kwargs) File "lib\matplotlib\backend_bases.py", line 2232, in print_figure **kwargs) File "lib\matplotlib\backends\backend_ps.py", line 985, in print_ps return self._print_ps(outfile, 'ps', *args, **kwargs) File "lib\matplotlib\backends\backend_ps.py", line 1012, in _print_ps **kwargs) File "lib\matplotlib\backends\backend_ps.py", line 1376, in _print_figure_tex rotated=psfrag_rotated) File "lib\matplotlib\backends\backend_ps.py", line 1539, in gs_distill raise RuntimeError(m % output) RuntimeError: ghostscript was not able to process your image. Here is the full report generated by ghostscript: b''
9c450bb
to
83b8407
Compare
OK - after many battles, I think this one is ready now. All tests passing. |
""" | ||
from setup_external_compile import fixproj, prepare_build_cmd, VS2010, X64, tar_extract | ||
# Note: freetype has no build profile for 2014, so we don't bother... | ||
vc = 'vc2010' if VS2010 else 'vc2008' |
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 broken on Python 3.5, which uses VS2015. Better raise an Exception.
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.
Build seems to be working : https://ci.appveyor.com/project/mdboom/matplotlib/build/1.0.2436/job/akufhhatuycx8tps - is it not running this block?
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.
Looks like you got lucky with linking a static library built with VS2010 into a DLL otherwise built with VS2015.
Compared to the matplotlib 1.x wheels, these wheels are missing the gtkagg extensions for Python 2.7 and the Visual C++ 2015 runtime DLLs for Python 3.5. |
Christoph - would you consider sharing your recipes to get something automated working on appveyor? |
To build freetype with VS2015 it should be possible to convert the 2010 solution and build it with msbuild. Try:
Do not initialize the Windows 7 SDK, only VS2015. To bundle the VS2015 runtime DLLs I run echo [gui_support] > setup.cfg
echo windowing = True >> setup.cfg
echo [rc_options] >> setup.cfg
echo backend = TkAgg >> setup.cfg
echo [package_data] >> setup.cfg
echo dlls = True >> setup.cfg
::<snip>
copy /Y /B "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x64\Microsoft.VC140.CRT\MSVCP140.DLL" lib\matplotlib\
copy /Y /B "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x64\Microsoft.VC140.CRT\CONCRT140.DLL" lib\matplotlib\
::<snip>
python.exe setup.py bdist_wheel
del /S /Q lib\matplotlib\*.dll For the GTK2 agg backend I am using the GTK+ 2.22 distributions and my own builds of PyGTK. Nothing automated, just setting PATH, INCLUDE, LIB, and PKG_CONFIG_PATH environment variables. |
All comments from @cgohlke probably also apply to the master version of the appveyor script :-/ The MS runtime libs are probably not included because I (and the appveyor scripts) use conda and conda has them included when python is installed, so no error was raised... :-/ |
Re MS runtime: Appveyor will probably never fail because the DLLs are installed as part of Visual Studio 2015. Many user systems are missing the DLLs, which is a nuisance, so the DLLs are included in the matplotlib wheels. |
Hi @matthew-brett |
Moving to |
When we release, we will want to build the Windows wheels as well.
See gh-6966