Closed adamchainz closed 7 years ago
We're currently not looking to use setuptools
or release as a wheel, but we'll be happy to accept the long description and spacing fix. Please update the commit and we can get this merged!
@danakatz This only uses setuptools if it's available
@danakatz why aren't you looking to release a wheel?
It's reasonable for a build process now to only support the use of wheels, and that would preclude a project from using Braintree. Plus this is a progressive enhancement on top of the current system that doesn't break backwards compatibility.
Thanks for the input, @graingert and @danpalmer. We're not aware of this issue blocking anyone from integrating with Braintree, and it also adds dependencies to our internal release process.
However, we see the value of this feature and appreciate your focus on including it in the library. We'll consider revisiting and merging when we can!
I've released briantree
for those that want a faster-cacheyer install
experience.
Just pip uninstall braintree && pip install briantree
On 31 Oct 2016 19:46, "Dana Katz" notifications@github.com wrote:
Thanks for the input, @graingert https://github.com/graingert and @danpalmer https://github.com/danpalmer. We're not aware of this issue blocking anyone from integrating with Braintree, and it also adds dependencies to our internal release process.
However, we see the value of this feature and appreciate your focus on including it in the library. We'll consider revisiting and merging when we can!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/braintree/braintree_python/pull/76#issuecomment-257399428, or mute the thread https://github.com/notifications/unsubscribe-auth/AAZQTKmNIVCUtVeE_6x0f-9pRRkuKvrJks5q5kWCgaJpZM4KgjrV .
@danakatz thanks for the update. I think it's a shame that a few packages are still not making wheels available, and I hope Braintree reconsiders soon so that the Python ecosystem can continue to move forward at a good pace.
I understand that this may complicate internal processes, but as the product here is so developer focused I think being a good citizen in the modern Python ecosystem is important. Avoiding this sends mixed messages to that developer community, and those of us considering integrating with Braintree.
In case you're wondering the difference that wheels can make:
$ mkvirtualenv test
...
$ time pip install --no-cache-dir --no-deps braintree==3.30.0
Collecting braintree==3.30.0
Downloading braintree-3.30.0.tar.gz (57kB)
100% |████████████████████████████████| 61kB 2.0MB/s
Installing collected packages: braintree
Running setup.py install for braintree ... done
Successfully installed braintree-3.30.0
pip install --no-cache-dir --no-deps braintree==3.30.0 0.89s user 0.30s system 63% cpu 1.877 total
$ deactivate
$ rmvirtualenv test
Removing test...
$ mkvirtualenv test
...
$ time pip install --no-cache-dir --no-deps briantree==3.30.0
Collecting briantree==3.30.0
Downloading briantree-3.30.0-py2.py3-none-any.whl (97kB)
100% |████████████████████████████████| 102kB 1.6MB/s
Installing collected packages: briantree
Successfully installed briantree-3.30.0
pip install --no-cache-dir --no-deps briantree==3.30.0 0.50s user 0.26s system 63% cpu 1.206 total
So from around 0.9s to 0.5s, or nearly 50%! Multiplying this by the ~100 packages our build process installs, it's a big difference to our build process that gets run 100's of times a day. That's why I've opened this pull request, because I'm on a project to speed up our build process. Most of our key dependencies already had wheels but I've had pull requests merged on 10's of repos so far.
As Dan said, this is about being a good citizen in the ecosystem, and helping the developers that work with your product.
I've updated the build process in the Rakefile
now too.
We're going to close this PR due to inactivity, but let us know if you want us to reopen it and take another look after you make the requested changes.
@EvanHahn please reopen
@graingert Thanks for the quick feedback. Please take a look at the requested changes so we can try to merge this in.
Specifically
We're adding long_description with some custom information in another commit, revert this change.
Reopening 👐
It would be much better to switch to reStructuredText wholesale
@demerino ♻️ rebased
Thanks for your changes! Glad we finally got them in.
We'll release a new version soon with these changes.
Thanks, look forward to wheel
Re-re-hash of the rejected #74 and #75.
Includes these changes:
setuptools
rather thandistutils
, because the future is now.setuptools
is installed in nearly every Python environment these days becausepip
always includes it. It supports deployment of universal wheels. By falling back todistutils
when it can't be imported, we still support source installations in legacy environments.