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

Require new-ish setuptools to build wheels #1177

Closed
wants to merge 5 commits into from

Conversation

Zac-HD
Copy link
Member

@Zac-HD Zac-HD commented Mar 21, 2018

Closes #1091. It looks like this actually works (at least in our CI)!

This PR also reorganises our input dependencies a bit, moving them to setup.py and adding minimum versions for most of them. I will probably move that to a separate pull as it's a bigger change than I expected - with the remaining piece to either fix or work around jazzband/pip-tools#204 (the -e .[...] line converted to local absolute path). Fortunately I think we can just strip lines starting with -e from our .txt outputs, so this is manageable.

@kxepal
Copy link
Member

kxepal commented Mar 21, 2018

Shouldn't all requirements/* be dropped with this changes?

@kxepal
Copy link
Member

kxepal commented Mar 21, 2018

Also, with new-ish setuptools you can move all the metadata to setup.cfg.

pyup bot got it support with latest release, so it should continue keep deps up-to-date. However, iirc, it couldn't manage setup.py itself.

@Zac-HD
Copy link
Member Author

Zac-HD commented Mar 21, 2018

Shouldn't all requirements/* be dropped with this changes?

We still need something as inputs for pip-compile, and this would be a nice way to do it. Unfortunately it looks like the local -e .[dev] is expanded to an absolute file URL pointing at the local system, so I'll probably have to take this part of the change out 😢 (unless I can get it fixed upstream, of course).

@kxepal
Copy link
Member

kxepal commented Mar 21, 2018

Why do we need pip-compile? It seems the work what it does could be solved by Pipfile.lock.

@Zac-HD
Copy link
Member Author

Zac-HD commented Mar 21, 2018

pip-compile translates the unpinned top-level dependencies (from setup.py and requirements/*.in) into requirements/*.txt, which pin an exact version of every package in our dependency tree.

That fully pinned version means our CI builds are repeatable, including if we go back to an older version using now-outdated packages. This is also the target of our weekly updates from @pyup-bot, so we can see if our tests pass with new versions or fix things for upgraded linters.

@Zac-HD
Copy link
Member Author

Zac-HD commented Mar 27, 2018

Closing this (and the issue) as wontfix - having done some more work, I just don't think correctness is worth the cost in compatibility with old versions at this time.

@Zac-HD Zac-HD closed this Mar 27, 2018
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.

3.44.24 breaks AppVeyor Python 3.4 builds
2 participants