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

python 3.7 binary wheels. #92

Merged
merged 6 commits into from
Aug 9, 2018
Merged

python 3.7 binary wheels. #92

merged 6 commits into from
Aug 9, 2018

Conversation

fgregg
Copy link
Contributor

@fgregg fgregg commented Aug 8, 2018

This PR directs travis and appveyor to build binary wheels for python 3.7

@fgregg fgregg mentioned this pull request Aug 8, 2018
6 tasks
[build-system]
requires = ["setuptools",
"wheel",
"persistent"]
Copy link
Member

Choose a reason for hiding this comment

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

Adding a pyprojet.toml enables build isolation, meaning that packages installed in the virtualenv are ignored. Prior to pip 18.0, only binary wheels were allowed for build-system.requires. Taken together, this means that people installing BTrees from source (most likely those on platforms that don't already have binary wheels, e.g., BSD), must have the absolute latest pip.

I also wonder if it has any effect on those of us testing BTrees and persistent locally in the same virtualenv. Will we have to remember to pass --no-build-isolation to pip install -e .?

Copy link
Member

Choose a reason for hiding this comment

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

Which pip version introduced support for pyproject.toml? Surely older pips ignore it altogether, so there's only a brief range of versions where this could cause problems? (And wouldn't pip install'ing persistent beforehand create a wheel in pip's local cache that could then be reused?)

I think if people on weird platforms want to upgrade to the latest BTrees, they can also upgrade to the latest pip.

Copy link
Member

@jamadden jamadden Aug 9, 2018

Choose a reason for hiding this comment

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

Which pip version introduced support for pyproject.toml?

10.0b1 from March 31 of this year...a lot more recently than I thought.

Surely older pips ignore it altogether, so there's only a brief range of versions where this could cause problems?

Probably true, now that 18.0 is actually released.

And wouldn't pip install'ing persistent beforehand create a wheel in pip's local cache that could then be reused?

Hopefully?

I think if people on weird platforms want to upgrade to the latest BTrees, they can also upgrade to the latest pip.

I would think so too. I only mention it because every time I use a "new" setuptools feature in gevent, I get bug reports from people still using old versions (> 2 years). So I would suggest it's something that should explicitly be called out in the change notes.

Copy link
Member

@mgedmin mgedmin left a comment

Choose a reason for hiding this comment

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

Please also make .travis.yml to use 3.7 final instead of 3.7-dev.

(This may need an extra dist: xenial and sudo: true for that particular matrix.include job.)

[build-system]
requires = ["setuptools",
"wheel",
"persistent"]
Copy link
Member

Choose a reason for hiding this comment

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

Which pip version introduced support for pyproject.toml? Surely older pips ignore it altogether, so there's only a brief range of versions where this could cause problems? (And wouldn't pip install'ing persistent beforehand create a wheel in pip's local cache that could then be reused?)

I think if people on weird platforms want to upgrade to the latest BTrees, they can also upgrade to the latest pip.

@fgregg
Copy link
Contributor Author

fgregg commented Aug 9, 2018

@mgedmin, travis-ci still does not natively support "3.7" so I don't think I should make the requested change.

@jamadden
Copy link
Member

jamadden commented Aug 9, 2018

@fgregg It does, if you use 'dist: xenial' and 'sudo: true'. (See travis-ci/travis-ci#9069 or look at zope.proxy for an example.) Binary wheels built with a pre-release of 3.7 that old are pretty much useless, anyway, the ABI changed quite late in the release cycle.

@fgregg
Copy link
Contributor Author

fgregg commented Aug 9, 2018

Thanks for the tip @jamadden and sorry that you had to repeat what @mgedmin said.

@fgregg fgregg merged commit b5f6b71 into master Aug 9, 2018
@fgregg
Copy link
Contributor Author

fgregg commented Aug 9, 2018

@mgedmin @jamadden, would you be willing to make a release. Anything I can do to help with that?

@jamadden jamadden deleted the py37_build branch August 9, 2018 22:18
@jamadden
Copy link
Member

jamadden commented Aug 9, 2018

I've tagged and hopefully kicked off a release of 4.5.1. I left it with a minor version number bump as before because we previously claimed support with 3.7 (we just didn't distribute wheels). The pyproject.toml thing gave me a bit of pause, but it probably won't be a big deal (prepares salt and ketchup for hat).

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.

None yet

3 participants