tensorflow / data-validation

Library for exploring and validating machine learning data
Apache License 2.0
766 stars 174 forks source link

Dependency Issues #223

Closed mukeshmithrakumar closed 2 years ago

mukeshmithrakumar commented 2 years ago

Hi,

Problem:

Steps:

Output:

If you are doing pip install on requirements, this isn't a problem since pip doesn't care about dependencies, but for anything that is in production that uses poetry or any dependency management this is a problem.

You notice the same with absl-py package as well.

There are incompatible versions in the resolved dependencies:
  absl-py==1.2.0 (from -r tfdv-requirements.in (line 1))
  absl-py<0.13,>=0.9 (from tensorflow-data-validation==1.5.0->-r tfdv-requirements.in (line 176))
  absl-py<0.13,>=0.9 (from tfx-bsl==1.5.0->-r tfdv-requirements.in (line 182))
  absl-py>=1.0.0 (from tensorflow==2.10.0->-r tfdv-requirements.in (line 175))
  absl-py<0.13,>=0.9 (from tensorflow-metadata==1.5.0->-r tfdv-requirements.in (line 179))
  absl-py>=0.4 (from tensorboard==2.10.0->-r tfdv-requirements.in (line 172))

So, here is my question and well may be a request. Request:

  1. Can we add a validation step in the build process that makes sure the package dependencies are resolved at least within tensoflow packages before a major release.

Question:

  1. other than moving away from poetry and just using pip, is there any resolution for this?
singhniraj08 commented 2 years ago

@mukeshmithrakumar,

In the official website, it is recommended to install data validation using PyPI, or build from docker (if using Linux) or build from source. You can also refer to compatible versions for package version compatibility. Hope this helps. Thank you!

parthea commented 2 years ago

A new version of google-api-core has been published which allows protobuf>=3.19.5 . This should resolve the current dependency conflict. The constraint for protobuf < 3.20 and protobuf < 3.21 in tensorflow packages should be removed to prevent future conflicts.

https://pypi.org/project/google-api-core/2.10.2/

singhniraj08 commented 2 years ago

@mukeshmithrakumar,

Can you please try using google-api-core which allows protobuf>=3.19.5, and see if it resolves your dependency issue as mentioned above comment. Thank you!

mukeshmithrakumar commented 2 years ago

Awesome, thanks @singhniraj08 , that helps