-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
RTD is pinning "sphinx < 2" somehow #8679
Comments
Hi @spookylukey - that's correct, we pin Sphinx < 2 for projects created before October 2020 as explained in https://docs.readthedocs.io/en/stable/builds.html?highlight=sphinx#python, even though, as you discovered, you can override that with the proper configuration. If this is a concern for you, we can enable the readthedocs.org/readthedocs/doc_builder/python_environments.py Lines 506 to 511 in 3c4b495
|
Hi @astrojuanlu - thanks for the reply. I can see why you took the decision to do this pinning, but this piece of information is buried quite deep in the docs. Even though I was looking for it, I didn't find it. I had been scouring the configuration docs to find it, and it wasn't mentioned in this blog post - https://blog.readthedocs.com/build-errors-docutils-0-18/ It is also very non-intuitive - I also have some settings on the web interface which control how my project is built, I then have a configuration file which overrides that, and then I have another invisible bit of configuration, which depends on when my project was first created, which is very surprising, and I can think of no other software that works like that. This behaviour means that I can copy the configuration from one project to another, and RTD doesn't behave the same, which is quite baffling. So perhaps:
In the context of the recent docutils breakage, this behaviour is particularly confusing - I'm not specifying a Sphinx version at all, which I expect to be interpreted as "I don't care, just give me the default", but in this case RTD gives me a default that doesn't work. Regarding my own builds - yes, please do change the setting to enable most recent Sphinx, for these projects: django-ftl Thanks! |
Thanks for the writeup @spookylukey , these are all good suggestions. I'm leaving the issue open so I don't forget about them. I already enabled the flag for all your projects, please trigger a build for them just to check that everything works. |
This suggestion is also good, but our policy at the moment is to avoid touching the current UI, since we are working on a complete redesign. For the other two, I have opened two pull requests on the corresponding repositories. |
Both PRs were merged, closing. |
This relates to the recent problems with docutils >= 0.18 e.g. #8663
It looks like one reason why many builds are failing is that RTD is pinning Sphinx to
< 2
. This was happening in my old builds, where I hadn't specified any Sphinx version, and I've noticed that even after I've upgraded Sphinx, usingdocs/requirements.txt
in.readthedocs.yaml
as instructed, my builds are still doingpip install sphinx<2
. This is followed bypip install docs/requirements.txt
, so the builds now succeed, but the first installation is now useless and inefficient.In my builds, I had never pinned to
sphinx < 2
, but this was chosen for me for some reason, perhaps because it was an old project, as suggested in this comment. I had assumed this would stop happening after upgrading my.readthedocs.yaml
file, but it hasn't.Example:
https://readthedocs.org/projects/parsy/builds/15271965/ - this is from after I fixed the build, so it completes successfully, but still includes the
sphinx<2
pinning in the line:Later on it does:
This project is not a Python 2 project, and I've configured it to build with Python 3 only, so I'm at a loss now to explain what is triggering this behaviour. It seems like at the very least RTD could be more efficient here.
My
.readthedocs.yaml
contains:and
docs/requirements.txt
contains:More examples:
The text was updated successfully, but these errors were encountered: