Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Circular dependency causes dependency checking tools to fail #1845

Closed
lseek opened this issue Apr 14, 2015 · 9 comments
Closed

Circular dependency causes dependency checking tools to fail #1845

lseek opened this issue Apr 14, 2015 · 9 comments
Milestone

Comments

@lseek
Copy link

lseek commented Apr 14, 2015

sphinx specifies sphinx_rtd_theme as a dependency in tests-reqs.txt but sphinx_rtd_theme specifies sphinx>=1.1 as a dependency, thus leading to a circular dependency which causes a dependency checking tool (currently using pip-compile) to flag an error.

@birkenfeld
Copy link
Member

Hmm, since these are not "needs to build" dependencies but "needs to run" dependencies, I don't see why the circular dependency is so bad. ("install_requires", despite the slightly misleading name, means "needs to be installed together with this one". The build-time dependency would be "setup_requires".) So please take this up with the pip-compile authors.

If that is considered inacceptable, I suggest filing this with sphinx_rtd_theme, since Sphinx definitely doesn't run without it now, while the theme doesn't "run" (or do anything) anyway if Sphinx is not present.

@jakirkham
Copy link

This appears to be suboptimal for building with conda build. When trying to build a newer version of sphinx, conda will try to fill the dependency by installing an older version of sphinx to satisfy sphinx_rtd_theme. The unfortunate consequence appears to be the final built sphinx package cannot be imported. Trying to make sphinx_rtd_theme a run requirement and not a build requirement fails as setuptools will try to download the missing requirement at build time, which is forbidden in conda build.

Could another solution please be considered? Perhaps bundling an acceptable copy of sphinx_rtd_theme as an extension (or otherwise) that can be upgraded or similar.

@birkenfeld
Copy link
Member

Well, what do the conda people say about this?

@jakirkham
Copy link

Fair question, asked in this issue ( conda/conda-build#381 ). I tried a different manner of building here ( conda/conda-build#380 ), which has a different result. So, I can't conclusive say what the cause was, but I am a little worried about how these dependencies are setup.

@jakirkham
Copy link

Also, @birkenfeld, I have followed up on your previous point by opening an issue with sphinx_rtd_theme as seen here ( readthedocs/sphinx_rtd_theme#189 ).

@birkenfeld
Copy link
Member

Thanks!

@karelin
Copy link

karelin commented Jul 2, 2015

Perhaps I'm missing something, but Sphinx requires sphinx_rtd_theme in its setup.py script. It seems not 'testing requirement'. Will it be more wise not to rely on any particular themes that user may not need?

@jakirkham
Copy link

It looks like the sphinx_rtd_theme issue was closed out by this PR ( readthedocs/sphinx_rtd_theme#275 ). So, maybe we can close this out now as it is no longer a circular dependency, but just a dependency.

@tk0miya
Copy link
Member

tk0miya commented Jan 14, 2016

@jakirkham Thank you for letting us know.
Now, I close this issue.

@tk0miya tk0miya closed this as completed Jan 14, 2016
shimizukawa added a commit that referenced this issue Jan 15, 2016
@tk0miya tk0miya added this to the 1.4 milestone Feb 14, 2016
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 10, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants