-
-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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
BLD: for C extension builds on mac, target macOS 10.9 where possible #24274
Conversation
Hello @robbuckley! Thanks for submitting the PR.
|
Codecov Report
@@ Coverage Diff @@
## master #24274 +/- ##
=======================================
Coverage 92.29% 92.29%
=======================================
Files 162 162
Lines 51841 51841
=======================================
Hits 47847 47847
Misses 3994 3994
Continue to review full report at Codecov.
|
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.
Thanks for the research on this PR. I have some general code comments though I'm curious if you have thoughts nohow to manage such a change long term, i.e. how will we know if / when such a directive is no longer necessary.
Thanks for looking into this. Do you know if this affects libraries like NumPy as well? |
@TomAugspurger I'd expect anything that uses the c++ standard lib to be affected. I cloned
If there are other libs you'd like to me to check I'm happy to take a look |
@WillAyd on long term maintenance: once |
BTW, for building wheels for distribution, I suppose you want to keep compatibility with older systems, at least for now. You may need to set |
let me look |
so there is this section lowerdown
I would say this is 'causing' this issue so likely should just fix this |
hi, I dont think the |
so I would ideally like to test this with our wheel builder: https://travis-ci.org/MacPython/pandas-wheels. @robbuckley might be non-trivial to do this, basically you would fork this repo then update the hash to build from this PR. Alternatively we could merge this and make sure the wheels build, reverting if there is a problem. |
I’ll give the wheel build a try on the PR branch. |
@robbuckley pls also add a note in the whatsnew (Other section is fine) |
@jreback ive pushed a whatsnew change, is it OK? I've forked the wheel building repo and will try to get this tested in the next day or 2. |
@robbuckley pls indicate if the wheel building is successful. |
hi @jreback I forked https://github.com/MacPython/pandas-wheels, made a branch and updated the pandas submodule to point to the head of my PR branch. 4 out of 11 builds failed. I reran the fails, same result. See https://github.com/robbuckley/pandas-wheels/runs/43815545. Build #2 ( macosx ) failed early, in the the The other fails aren't on the branch I forked from. They dont seem obviously related to my change: since they are all in linux builds, the code in my change shouldn't be active when building those targets. My thoughts on how i would investigate: branch Details of the other 3 fails: Builds 3 and 4 (linux) failed later, with Build 5 failed with the following report. |
should have mentioned the natale branch only gets updated on release |
Ok will try on the daily instead
On Wed, 26 Dec 2018 at 14:25, Jeff Reback ***@***.***> wrote:
should have mentioned
run on the daily branch
the natale branch only gets updated on release
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#24274 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ATkI0N5HNl15AMGNPKFKN6eacs08jR4Oks5u82kLgaJpZM4ZSYCU>
.
--
Sent from Gmail Mobile
|
hi, wheel building passed. I rebased my changes onto |
thanks for putting in all of this effort @robbuckley ! |
* upstream/master: (26 commits) DOC: Fixing doc upload (no such remote origin) (pandas-dev#24459) BLD: for C extension builds on mac, target macOS 10.9 where possible (pandas-dev#24274) POC: _eadata (pandas-dev#24394) DOC: Correct location (pandas-dev#24456) CI: Moving CircleCI build to Travis (pandas-dev#24449) BUG: Infer compression by default in read_fwf() (pandas-dev#22200) DOC: Fix minor typo in whatsnew (pandas-dev#24453) DOC: Add dateutil to intersphinx pandas-dev#24437 (pandas-dev#24443) DOC: Adding links to offset classes in timeseries.rst (pandas-dev#24448) DOC: Adding offsets to API ref (pandas-dev#24446) DOC: fix flake8 issue in groupby.rst (pandas-dev#24363) DOC: Fixing more doc warnings (pandas-dev#24438) API: Simplify repeat signature (pandas-dev#24447) BUG: to_datetime(Timestamp, utc=True) localizes to UTC (pandas-dev#24441) CLN: Cython Py2/3 Compatible Imports (pandas-dev#23940) DOC: Fixing more doc warnings (pandas-dev#24431) DOC: Removing old release.rst (pandas-dev#24427) BUG-24408 Series.dt does not maintain own copy of index (pandas-dev#24426) DOC: Fixing several doc warnings (pandas-dev#24430) ENH: fill_value argument for shift pandas-dev#15486 (pandas-dev#24128) ...
…10.9. Modified setup.py to set env MACOSX_DEPLOYMENT_TARGET=10.9 when the build MacOS is that or newer, but the default MACOSX_DEPLOYMENT_TARGET (when absent) is <10.9, which happens when the running Python targets <10.9 min. This happens for example when running a current Anaconda Python, which has target 10.7. This fix taken verbatim from similar in Pandas, pandas-dev/pandas#24274 . Fixed wmayner#39.
See pandas-dev/pandas#24274 for details
See pandas-dev/pandas#24274 for details
git diff upstream/master -u -- "*.py" | flake8 --diff
For extension builds,
distutils
targets the same macOS version as python was built for, even if the host system is newer. This can cause problems when building on a 10.9+ system, with a python built for <10.9. Targetting macOS <10.9 sets the c++ standard library tostdlibc++
, which was deprecated in 10.9 in favour oflibc++
. Starting with Xcode 10,stdlibc++
is no longer installed by default, so isn't guaranteed to be available. This can be an issue with the current 64/32b universal builds of python, which target macOS 10.7.Another reason to do this is to move over to 10.9 /
libc++
where possible, as the current 64-bit builds of python have done.