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

dependency bug ?? #107

Closed
ChrisBarker-NOAA opened this issue Jul 30, 2021 · 5 comments
Closed

dependency bug ?? #107

ChrisBarker-NOAA opened this issue Jul 30, 2021 · 5 comments

Comments

@ChrisBarker-NOAA
Copy link

Installing the latest version of Sphinx with conda into an existing environment results in a dependency bug:

Running Sphinx v4.1.2

Extension error:
Could not import extension sphinx.builders.epub3 (exception: cannot import name 'RemovedInSphinx40Warning' from 'sphinx.deprecation' (/Users/chris.barker/miniconda3/envs/adios_db/lib/python3.9/site-packages/sphinx/deprecation.py))

This was identified in this Sphinx Issue:

sphinx-doc/sphinx#9434

and fixed in the PR:

https://github.com/sphinx-doc/sphinx/pull/9448

Which was in release 4.1.2.

I've looked at the dependencies in this recipe, and they were updated to match the updated pinning in the Sphinx release.

And, indeed, if I start with a fresh environment, and instal Sphinx, it does work.

However: if I install into an existing environment, I get the error.

So I'm guessing there is a missing pin somewhere deeping the dependency stack.

The existing environment is kinda big, but I wrote a nifty script for comparing conda environments, I see this:

sphinxcontrib-serializinghtml :
    adios_db       1.1.4     py_0                conda-forge         
    sphinx-conda   1.1.5     pyhd8ed1ab_0        conda-forge 

sphinxcontrib-htmlhelp :
    adios_db       1.0.3     py_0                conda-forge         
    sphinx-conda   2.0.0     pyhd8ed1ab_0        conda-forge

Those are both older than the current sphinx requirements.

If I hand update those two, it all works:

conda update sphinxcontrib-serializinghtml sphinxcontrib-htmlhelp

adios_db is my big ol' environment, built a few months ago, probably. sphinx was just added with:

conda install sphinx

sphinx-conda is a brand new environment, built with:

conda create -n sphinx-conda python=3.9 sphinx sphinx_rtd_theme

So the question is -- when I installed sphinx, why didn't it update sphinxcontrib-serializinghtml and sphinxcontrib-htmlhelp ?

Here's the full list of packages they both share, but have different versions:

Packages in both, with different versions:
pygments :
    adios_db       2.8.0     pyhd8ed1ab_0        conda-forge         
    sphinx-conda   2.9.0     pyhd8ed1ab_0        conda-forge         
python_abi :
    adios_db       3.9       1_cp39              conda-forge         
    sphinx-conda   3.9       2_cp39              conda-forge         
sphinx :
    adios_db       4.1.2     pyh6c4a22f_0        conda-forge         
    sphinx-conda   4.1.2     pyh6c4a22f_1        conda-forge         
sphinx_rtd_theme :
    adios_db       0.5.2     pyhd8ed1ab_0        conda-forge         
    sphinx-conda   0.5.2     pyhd8ed1ab_1        conda-forge         
requests :
    adios_db       2.25.1    pyhd3deb0d_0        conda-forge         
    sphinx-conda   2.26.0    pyhd8ed1ab_0        conda-forge         
idna :
    adios_db       2.10      pyh9f0ad1d_0        conda-forge         
    sphinx-conda   3.1       pyhd3deb0d_0        conda-forge         
packaging :
    adios_db       20.9      pyh44b312d_0        conda-forge         
    sphinx-conda   21.0      pyhd8ed1ab_0        conda-forge         
sqlite :
    adios_db       3.34.0    h17101e1_0          conda-forge         
    sphinx-conda   3.36.0    h23a322b_0          conda-forge         
six :
    adios_db       1.15.0    pyh9f0ad1d_0        conda-forge         
    sphinx-conda   1.16.0    pyh6c4a22f_0        conda-forge         
cffi :
    adios_db       1.14.5    py39h319c39b_0      conda-forge         
    sphinx-conda   1.14.6    py39hb71fe58_0      conda-forge         
readline :
    adios_db       8.0       h0678c8f_2          conda-forge         
    sphinx-conda   8.1       h05e3726_0          conda-forge         
brotlipy :
    adios_db       0.7.0     py39hcbf5805_1001   conda-forge         
    sphinx-conda   0.7.0     py39h89e85a6_1001   conda-forge         
sphinxcontrib-serializinghtml :
    adios_db       1.1.4     py_0                conda-forge         
    sphinx-conda   1.1.5     pyhd8ed1ab_0        conda-forge         
urllib3 :
    adios_db       1.26.3    pyhd8ed1ab_0        conda-forge         
    sphinx-conda   1.26.6    pyhd8ed1ab_0        conda-forge         
pip :
    adios_db       21.0.1    pyhd8ed1ab_0        conda-forge         
    sphinx-conda   21.2.1    pyhd8ed1ab_0        conda-forge         
tzdata :
    adios_db       2021a     he74cb21_0          conda-forge         
    sphinx-conda   2021a     he74cb21_1          conda-forge         
libcxx :
    adios_db       11.1.0    habf9029_0          conda-forge         
    sphinx-conda   12.0.1    habf9029_0          conda-forge         
cryptography :
    adios_db       3.4.4     py39h36ea649_0      conda-forge         
    sphinx-conda   3.4.7     py39ha2c9959_0      conda-forge         
sphinxcontrib-htmlhelp :
    adios_db       1.0.3     py_0                conda-forge         
    sphinx-conda   2.0.0     pyhd8ed1ab_0        conda-forge         
babel :
    adios_db       2.9.0     pyhd3deb0d_0        conda-forge         
    sphinx-conda   2.9.1     pyh44b312d_0        conda-forge         
markupsafe :
    adios_db       1.1.1     py39hcbf5805_3      conda-forge         
    sphinx-conda   2.0.1     py39h89e85a6_0      conda-forge         
jinja2 :
    adios_db       2.11.3    pyh44b312d_0        conda-forge         
    sphinx-conda   3.0.1     pyhd8ed1ab_0        conda-forge         
docutils :
    adios_db       0.17.1    py39h6e9494a_0      conda-forge         
    sphinx-conda   0.16      py39h6e9494a_3      conda-forge         
python :
    adios_db       3.9.2     h2502468_0_cpython  conda-forge         
    sphinx-conda   3.9.6     hd187cdc_1_cpython  conda-forge     
@chohner
Copy link
Contributor

chohner commented Jul 31, 2021

I think you actually installed two subtly different versions of sphinx (notice the _1 in the working sphinx-conda env)

sphinx :
    adios_db       4.1.2     pyh6c4a22f_0        conda-forge         
    sphinx-conda   4.1.2     pyh6c4a22f_1        conda-forge         

This recipe version bump introduces the following pins, as per #106

sphinxcontrib-htmlhelp >=2.0.0
sphinxcontrib-serializinghtml >=1.1.5

Have you tried whether updating sphinx to pyh6c4a22f_1 in the broken adios_db env bumps the dependencies?

@jakirkham
Copy link
Member

Is this still an issue @ChrisBarker-NOAA?

@ChrisBarker-NOAA
Copy link
Author

I don't think so -- sphinx is now at 4.4 so not using this older version anyway.

Oddly just yesterday we got another mysterious error with sphinx in our CI -- but I haven't figured out what it is yet.

So closing this

@jakirkham
Copy link
Member

Thanks for following up here Chris! 😄

Oddly just yesterday we got another mysterious error with sphinx in our CI -- but I haven't figured out what it is yet.

We just got this report ( #114 ). Maybe related?

If not, please let us know once the issue is isolated 🙂

@ChrisBarker-NOAA
Copy link
Author

Yup, that was it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants