🌐 AI搜索 & 代理 主页
Skip to content

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...

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
Copy link
Contributor Author

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

@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

@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!

@jenshnielsen
Copy link
Member

Unfortunatly it's also reporting back on other prs i.e. #5591

@jankatins
Copy link
Contributor Author

Fun: 349762b introduced a depency on functools32 for py27, but conda has not yet such a package although such a package exists in their conda-recipe repo... Ok, so no 2.7 packages...

@mdboom
Copy link
Member

mdboom commented Dec 2, 2015

I'll report the functools32 issue.

@jankatins
Copy link
Contributor Author

Ok, I have no clue what this is:

py35, 64bit:

ft2font_wrapper.obj : warning LNK4197: export 'PyInit_ft2font' specified multiple times; using first specification
   Creating library build\temp.win-amd64-3.5\Release\src\ft2font.cp35-win_amd64.lib and object build\temp.win-amd64-3.5\Release\src\ft2font.cp35-win_amd64.exp
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
freetype.lib(ftrfork.c.obj) : error LNK2001: unresolved external symbol __imp_strrchr
freetype.lib(truetype.c.obj) : error LNK2001: unresolved external symbol __imp_strstr
freetype.lib(type1.c.obj) : error LNK2001: unresolved external symbol __imp_memchr
freetype.lib(sfnt.c.obj) : error LNK2001: unresolved external symbol __imp_memchr
build\lib.win-amd64-3.5\matplotlib\ft2font.cp35-win_amd64.pyd : fatal error LNK1120: 3 unresolved externals
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64\\link.exe' failed with exit status 1120

This seems to be reported in python upstream: https://bugs.python.org/msg248651 https://bugs.python.org/issue24872

@mdboom
Copy link
Member

mdboom commented Dec 2, 2015

Just in case it hasn't been said explicitly: thanks so much for taking this on, @JanSchulz. At a recent meetup at PyData NYC, it was made pretty clear that the percentage of Windows use in our developer pool is approaching zero while the percentage of Windows among our users is easily more than half and growing as scientific Python makes its way into corporate environments. So anything we can do to keep things working better on Windows is greatly appreciated.

@WeatherGod
Copy link
Member

Btw, when this gets all cleared up and kinks ironed out, we should probably
do the same for Basemap as I have zero Windows build expertise and I
wouldn't know the first thing on how to build a windows wheel.

On Wed, Dec 2, 2015 at 2:28 PM, Michael Droettboom <notifications@github.com

wrote:

Just in case it hasn't been said explicitly: thanks so much for taking
this on, @JanSchulz https://github.com/JanSchulz. At a recent meetup at
PyData NYC, it was made pretty clear that the percentage of Windows use in
our developer pool is approaching zero while the percentage of Windows
among our users is easily more than half and growing as scientific Python
makes its way into corporate environments. So anything we can do to keep
things working better on Windows is greatly appreciated.


Reply to this email directly or view it on GitHub
#5604 (comment)
.

@jankatins
Copy link
Contributor Author

@mdboom Ok, the functool32 addition in conda-recipe is a recent addition: conda-archive/conda-recipes#459

I really wonder how up-to-date conda-recipe is and how much magic is installed in anacondas autobuilder to let the matplotlib recipe produce the py35 packages of matplotlib :-/

@cgohlke
Copy link
Contributor

cgohlke commented Dec 2, 2015

FWIW, https://bugs.python.org/msg248651 and https://bugs.python.org/issue24872 are obsolete and do not apply to Python 3.5 final.

@jankatins
Copy link
Contributor Author

@cgohlke thanks for the clarification!

back to the drawing board for py35... :-/ But only after 2.7 and 3.4 are running :-)

@jenshnielsen
Copy link
Member

As far as I know Python 3.5 is build with visual studio 2015 and not visual studio 2010 so perhaps that is the reason?

@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...]

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