You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Pablo Estrada (Jira)" <ji...@apache.org> on 2021/09/28 23:21:00 UTC

[jira] [Updated] (BEAM-6702) GCP dependencies for the Python SDK are too restrictive

     [ https://issues.apache.org/jira/browse/BEAM-6702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pablo Estrada updated BEAM-6702:
--------------------------------
    Resolution: Fixed
        Status: Resolved  (was: Open)

> GCP dependencies for the Python SDK are too restrictive
> -------------------------------------------------------
>
>                 Key: BEAM-6702
>                 URL: https://issues.apache.org/jira/browse/BEAM-6702
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-py-core
>    Affects Versions: 2.12.0
>            Reporter: Jamie Kirkpatrick
>            Priority: P3
>          Time Spent: 6h
>  Remaining Estimate: 0h
>
> The fix for [BEAM-3324|https://github.com/apache/beam/pull/7367] introduced a bunch of dependencies in the `[gcp]` `extras_require` specification and locked them to specific versions. Unfortunately this has the side-effect of making it probable that you get version conflicts downstream in projects that include `apache_beam` in their `requirements.txt`.
> As it stands I'm running into issues when I ask [`pip-compile`](https://github.com/jazzband/pip-tools) to resolve dependencies with `apache_beam` in the chain (specified like this `-e git+https://github.com/apache/beam.git@1d13199#egg=apache_beam[gcp]&subdirectory=sdks/python`) - example output:
> ```
> Could not find a version that matches google-cloud-core<0.29dev, 
> <0.30dev,==0.28.1,>=0.28.0,>=0.29.0
> Tried: 0.20.0, 0.20.0, 0.20.0, 0.20.0, 0.21.0, 0.21.0, 0.21.0, 0.21.0, 0.22.0, 0.22.0, 0.22.0, 0.22.0, 0.22.1, 0.22.1, 0.22.1, 0.22.1, 0.23.0, 0.23.0, 0.23.0, 0.23.0, 0.23.1, 0.23.1, 0.23.1, 0.23.1, 0.24.0, 0.24.0, 0.24.0, 0.24.0, 0.24.1, 0.24.1, 0.24.1, 0.24.1, 0.25.0, 0.25.0, 0.25.0, 0.25.0, 0.26.0, 0.26.0, 0.26.0, 0.26.0, 0.27.0, 0.27.0, 0.27.0, 0.27.0, 0.27.1, 0.27.1, 0.27.1, 0.27.1, 0.28.0, 0.28.0, 0.28.0, 0.28.0, 0.28.1, 0.28.1, 0.28.1, 0.28.1, 0.29.0, 0.29.0, 0.29.0, 0.29.0, 0.29.1, 0.29.1, 0.29.1, 0.29.1
> There are incompatible versions in the resolved dependencies.
> ```
> Best practice is to lock your versions explicitly when you actually use a library (via a projects `requirements.txt`) but leave the requirements specifications as liberal as possible in `setup.py` - this allows some flex in the dependency resolution system so that you have a higher chance of different libraries playing nice.
> An example would be to change a requirement like `'google-cloud-bigtable==0.31.1'` to be `'google-cloud-bigtable>=0.31.1'` (unless you know of an explicit reason why there is an incompatibility with a newer version of the library) in the `setup.py` file.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)