Crunch-io / scrunch

Pythonic scripting library for cleaning data in Crunch
GNU Lesser General Public License v3.0
5 stars 7 forks source link

Address pinning of requests library #440

Open chrisBrookes93 opened 1 year ago

chrisBrookes93 commented 1 year ago

I'm not able to upgrade to the latest version of scrunch in a project where we make use of it because of a dependency version conflict:

Using legacy resolver. Consider using backtracking resolver with `--resolver=backtracking`.
Could not find a version that matches requests==2.18.4,>=2.25.0 (from -r requirements.in (line 13))
Tried: 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.6.6, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7, 0.8.8, 0.8.9, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.10.0, 0.10.1, 0.10.2, 0.10.3, 0.10.4, 0.10.6, 0.10.7, 0.10.8, 0.11.1, 0.11.2, 0.12.0, 0.12.1, 0.13.0, 0.13.1, 0.13.2, 0.13.3, 0.13.4, 0.13.5, 0.13.6, 0.13.7, 0.13.8, 0.13.9, 0.14.0, 0.14.1, 0.14.2, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 2.0.0, 2.0.0, 2.0.1, 2.0.1, 2.1.0, 2.1.0, 2.2.0, 2.2.0, 2.2.1, 2.2.1, 2.3.0, 2.3.0, 2.4.0, 2.4.0, 2.4.1, 2.4.1, 2.4.2, 2.4.2, 2.4.3, 2.4.3, 2.5.0, 2.5.0, 2.5.1, 2.5.1, 2.5.2, 2.5.2, 2.5.3, 2.5.3, 2.6.0, 2.6.0, 2.6.1, 2.6.1, 2.6.2, 2.6.2, 2.7.0, 2.7.0, 2.8.0, 2.8.0, 2.8.1, 2.8.1, 2.9.0, 2.9.0, 2.9.1, 2.9.1, 2.9.2, 2.9.2, 2.10.0, 2.10.0, 2.11.0, 2.11.0, 2.11.1, 2.11.1, 2.12.0, 2.12.0, 2.12.1, 2.12.1, 2.12.2, 2.12.2, 2.12.3, 2.12.3, 2.12.4, 2.12.4, 2.12.5, 2.12.5, 2.13.0, 2.13.0, 2.14.0, 2.14.0, 2.14.1, 2.14.1, 2.14.2, 2.14.2, 2.15.1, 2.15.1, 2.16.0, 2.16.0, 2.16.1, 2.16.1, 2.16.2, 2.16.2, 2.16.3, 2.16.3, 2.16.4, 2.16.4, 2.16.5, 2.16.5, 2.17.0, 2.17.0, 2.17.1, 2.17.1, 2.17.2, 2.17.2, 2.17.3, 2.17.3, 2.18.0, 2.18.0, 2.18.1, 2.18.1, 2.18.2, 2.18.2, 2.18.3, 2.18.3, 2.18.4, 2.18.4, 2.19.0, 2.19.0, 2.19.1, 2.19.1, 2.20.0, 2.20.0, 2.20.1, 2.20.1, 2.21.0, 2.21.0, 2.22.0, 2.22.0, 2.23.0, 2.23.0, 2.24.0, 2.24.0, 2.25.0, 2.25.0, 2.25.1, 2.25.1, 2.26.0, 2.26.0, 2.27.0, 2.27.0, 2.27.1, 2.27.1, 2.28.0, 2.28.0, 2.28.1, 2.28.1
There are incompatible versions in the resolved dependencies:
  requests (from -r requirements.in (line 13))
  requests (from yg-monocle==0.4.10->-r requirements.in (line 20))
  requests==2.18.4 (from scrunch==0.15.0->-r requirements.in (line 14))
  requests>=2.25.0 (from yg-requests==0.2->-r requirements.in (line 22))

This package pins to a version of requests that is 5 years old - requests==2.18.4 was released Aug 2017.

Can I suggest we either:

As this is a package often incorporated into other projects, I'd suggest pinning to an exact version is constraining users.

andrepedroso commented 1 year ago

+1 in pinning to the latest version

andrepedroso commented 1 year ago

I believe this PR would resolve this issue - https://github.com/Crunch-io/scrunch/pull/439

chrisBrookes93 commented 1 year ago

@andrepedroso for our use case we need requests>=2.25.0. The MR you mention only bumps it to 2.20.0, which is still an old version released more than 4 years ago

andrepedroso commented 1 year ago

You're entirely correct @chrisBrookes93 , thank you for the correction :) my bad

jjdelc commented 1 year ago

The latest Scrunch version 0.15.3 is pinned on requests==2.27.0 which is the last version to officially support Python2.7 which we still need to support for certain customers. We also need Scrunch+Pycrunch to work with Python3.6, so that may need pinning another particular version of requests for 3.6 only and a third more recent version for higher Python versions.

I don't think that the requests API that pycrunch uses has changed much, but would need to test thoroughly for Pycrunch.