Skip to content
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

Fix manylinux wheel builds and build them always #119

Merged
merged 3 commits into from
Nov 9, 2019
Merged

Conversation

mgedmin
Copy link
Member

@mgedmin mgedmin commented Nov 6, 2019

Highlights

  • Try manylinux builds on every commit so we can discover breakages in advance
  • Fix manylinux builds so they actually work (i.e. don't upgrade wheel to latest version, which is incompatible with auditwheel)
  • Add pretty names to Travis build matrix rows

Should fix #113.

Details

The diff is messy, for which I apologize. I had to reformat the YAML to understand it.

Drop dist: xenial which has become the default.

Rename matrix: to jobs: because that's the preferred spelling according to Travis CI docs.

Move regular Linux Python builds outside build matrix, for conciseness (unfortunately this means 3.6 builds are now done twice: once without -fwrapv and once with).

Move docker pull and twine upload out of .manylinux.sh and into .travis.yml. (The docker pull mostly because we need to override the install: step and keeping it blank looks bad, and we need to override the step because we can no longer do an exit 0 in before_install because we want to do the twine upload in after_success)

Unify twine upload calls by supplying username/password via environment variables.

The changes largely mirror those in zopefoundation/BTrees#115.

Should fix #113.

We can't see if the fix works because wheels are built only for git
tags.
@mgedmin
Copy link
Member Author

mgedmin commented Nov 6, 2019

I'd like to restructure our travis.yml along the lines of zopefoundation/BTrees#115 to always build wheels (and condition just the twine upload part on git tags), but that's for a separate PR.

@mgedmin mgedmin changed the title Fix wheel builds WIP: Fix wheel builds Nov 6, 2019
@mgedmin
Copy link
Member Author

mgedmin commented Nov 6, 2019

I don't want to merge this without seeing that it actually works.

I'm betting on pip being smart enough to honor the wheel version restrictions imposed by auditwheel when I specify both wheel and auditwheel on the command line, but I haven't actually verified that pip does that.

This also reformats the YAML, for which I apologize, but it was hard to
work on it without doing that.

It drops dist: xenial which has become the default.

It renames matrix: to jobs: because that's the preferres spelling
according to Travis CI docs.

It adds names to all the special build jobs.

It moves regular Linux Python builds outside build matrix, for
conciseness (unfortunately this means 3.6 builds are now done twice:
once without -fwrapv and once with)

It moves docker pull and twine upload out of .manylinux.sh and into
.travis.yml.

It unifies twine upload calls by supplifying username/password via
environment variables.

The changes largely mirror those in
zopefoundation/BTrees#115.
@mgedmin mgedmin requested a review from jamadden November 8, 2019 08:42
@mgedmin mgedmin changed the title WIP: Fix wheel builds Fix manylinux wheel builds and build them always Nov 8, 2019
I though pip was smart, but pip is stupid and it ignores version
constraints declared by auditwheel when you upgrade a bunch of packages.
@mgedmin
Copy link
Member Author

mgedmin commented Nov 8, 2019

Yeah, the fix wasn't working at all, because pip is much less smart than I thought it might be.

Trying an alternative fix.

@mgedmin
Copy link
Member Author

mgedmin commented Nov 8, 2019

Ah, coveralls. I think it's not merging the results from different Python version properly, then it sees that some branches are Python-2-only or Python-3-only and shouts.

@mgedmin mgedmin requested a review from icemac November 8, 2019 09:15
Copy link
Member

@jamadden jamadden left a comment

Choose a reason for hiding this comment

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

LGTM!

I think we'll have the same uploading problem with macOS 2.7 and 3.5 as BTrees did.

@mgedmin mgedmin merged commit b001c5e into master Nov 9, 2019
@mgedmin mgedmin deleted the fix-wheels branch November 9, 2019 08:55
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.

Building Linux wheels seems to be broken
2 participants