adeptRL icon indicating copy to clipboard operation
adeptRL copied to clipboard

Potential dependency conflicts between adeptrl and cloudpickle

Open NeolithEra opened this issue 4 years ago • 3 comments

Hi, as shown in the following full dependency graph of adeptrl, adeptrl requires cloudpickle (>=0.5), while the installed version of gym(0.17.1) requires cloudpickle>=1.2.0,<1.4.0.

According to Pip's “first found wins” installation strategy, cloudpickle 1.3.0 is the actually installed version.

Although the first found package version cloudpickle 1.3.0 just satisfies the later dependency constraint (cloudpickle>=1.2.0,<1.4.0), it will lead to a build failure once developers release a newer version of cloudpickle.

Dependency tree--------

adeptrl  - 0.2.0
| +- absl-py(install version:0.9.0 version range:>=0.2)
| +- cloudpickle(install version:1.3.0 version range:>=0.5)
| +- docopt(install version:0.6.2 version range:>=0.6)
| +- gym(install version:0.17.1 version range:>=0.10)
| | +- cloudpickle(install version:1.3.0 version range:>=1.2.0,<1.4.0)
| | +- enum34(install version: version range:<.2,>=1.1.6)
| | +- numpy(install version:1.18.2 version range:>=1.10.4)
| | +- pyglet(install version:1.5.0 version range:>=1.4.0,<=1.5.0)
| | +- scipy(install version:1.2.3 version range:*)
| | +- six(install version:1.14.0 version range:*)
| +- numpy(install version:1.18.2 version range:>=1.14)
| +- opencv-python-headless(install version:4.1.0.25 version range:>=3.4)
| +- pyzmq(install version:19.0.0 version range:>=17.1.2)
| +- tensorboard(install version:1.14.0 version range:>=1.14)
| +- torch(install version:0.1.2.post2 version range:>=1.3.1)
| | +- pyyaml(install version:5.3.1 version range:*)
| +- torchvision(install version:0.3.0 version range:>=0.4.2)

Thanks for your attention. Best, Neolith

NeolithEra avatar May 27 '20 09:05 NeolithEra

Solution

  1. Loosen the version range of cloudpickle to be >=0.5,<=1.3.0.
  2. Remove your direct dependency cloudpickle, and use the cloudpickle transitively introduced by gym.

@jtatusko Which solution do you prefer, 1 or 2? Please let me know your choice. May I pull a request to solve this issue?

NeolithEra avatar May 27 '20 09:05 NeolithEra

@jtatusko,Could you help me review this issue? Thx :p

NeolithEra avatar Jun 22 '20 08:06 NeolithEra

Hi @NeolithEra, sorry for the delay. I'd prefer 1, thanks!

Edit, Yes pull requests are cool. I'd be happy to help review

jtatusko avatar Jun 22 '20 11:06 jtatusko