explosion / preshed

💥 Cython hash tables that assume keys are pre-hashed
MIT License
82 stars 19 forks source link

readthedocs build fails because of cymem version mismatch #12

Closed bdewilde closed 8 years ago

bdewilde commented 8 years ago

Preshed is a dependency of textacy by way of spaCy. Unfortunately there seems to be a mismatch in cymem versions that prevents readthedocs from compiling the documentation for my package. The build process returns error: cymem 1.31.0 is installed but cymem<1.31.0,>=1.30 is required by {'preshed'}. Looks like spaCy requires cymem>=1.30,<1.32, which I guess is where this mismatch arises. Do you have any recommendations?

henningpeters commented 8 years ago

Well spotted, thanks. I am not sure how to handle versions in spaCy dependencies consistently as it seems that pip is too lax at enforcing version constraints across multiple dependent packages. What I mean is that pip shouldn't have installed cymem 1.31.0 if spaCy requires cymem>=1.30,<1.32, but preshed (a spaCy dependency) requires cymem>=1.30,<1.31.

I kind of knew that this problem could surface, but never quite understood what sequence of pip calls is needed to end up with it. Do you have a simple way to reproduce this state?

The only alternative I currently see would be to publish related packages in lock-step whenever version information changes. Do you have any other ideas?