https://docs.bazel.build/versions/master/external.html#transitive-dependencies explicitly says that WORKSPACE files must include all transitive dependencies for a project. That make sense, given the very really possibility of conflicting version requirements for dependent projects.
However, one of the promises of pip is that transitive dependencies are resolved and installed automatically. With the Bazel python rules, using an external package which internally uses pip_import and friends means that we loose the transitive dependency resolution of pip for that package. The conflicting version problem hasn't gone away, since it is still possible it could occur with the pip_import-managed packages, we've just made life harder on ourselves.
It would be nice to have a way of pulling down the transitive dependencies for external Bazel projects using the pip_import infrastructure. This could be in the form of generate_workspace from Java-land, or it could be a way to pull down those dependencies and create a master requirements file, similar to pip-compile. In any case, manually managing dependencies for external Bazel projects is going to get unwieldy very quickly.
https://docs.bazel.build/versions/master/external.html#transitive-dependencies explicitly says that
WORKSPACEfiles must include all transitive dependencies for a project. That make sense, given the very really possibility of conflicting version requirements for dependent projects.However, one of the promises of
pipis that transitive dependencies are resolved and installed automatically. With the Bazel python rules, using an external package which internally usespip_importand friends means that we loose the transitive dependency resolution ofpipfor that package. The conflicting version problem hasn't gone away, since it is still possible it could occur with thepip_import-managed packages, we've just made life harder on ourselves.It would be nice to have a way of pulling down the transitive dependencies for external Bazel projects using the
pip_importinfrastructure. This could be in the form ofgenerate_workspacefrom Java-land, or it could be a way to pull down those dependencies and create a master requirements file, similar topip-compile. In any case, manually managing dependencies for external Bazel projects is going to get unwieldy very quickly.