hynek / doc2dash

Create docsets for Dash.app-compatible API browsers.

Home Page:https://doc2dash.hynek.me/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

doc2dash should not have pinned requirements

ssbarnea opened this issue · comments

Currently doc2dash has pinned requirements and that is blocking its inclusion in other projects because it would create dependency conflicts.

Until recently pip was not able to detect these conflicts but versions >=8.0 do have the pip check command which can report such conflicts.

Example:

doc2dash 2.1.0 has requirement Sphinx==1.3.5, but you have Sphinx 1.5.1.

As any pypi project it should contain open ranges using one of these models:

requests>=2.10.0 # most common use
requests>=2.10.0,!=2.10.1 # if we know that a specific version is broken and newer release are likely to work
requests>=2.10.0,<3.0 # if we want to be sure new major release will not break

I am fully aware about the fact that an workaround would be to install it in its own virtualenv but that's not really working for two reasons:

  • project may already depend on newer version of sphinx
  • it does not scale as each venv requires a lots of space, time to create/update, if we would have to create a venv for each component we use we may easily end-up having a 10GB hello world python app ;)

I don’t buy the venv/space argument and believe me one thing: I get about 6 complaints/years about pinned deps vs. a barrage of complaints that would happen because some dependency broke (happened quite a few times before). At this point doc2dash is an application that happens to live on PyPI so I make everything possible for it to work well out of the box.

However I’m sympathetic to the inclusion argument. Are you trying to embed doc2dash in a different Python application?

I have opened #56 for the latter.