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

Update to Sphinx 3.3.x branch and fix test mock #597

Merged
merged 2 commits into from
Nov 7, 2020

Conversation

utzig
Copy link
Contributor

@utzig utzig commented Nov 5, 2020

This avoids using Sphinx versions that are currently broken.

@vermeeren
Copy link
Collaborator

@utzig I am guessing the PR you submitted upstream sphinx-doc/sphinx#8364 is what is needed to fix this? Or are there other problems too?

@utzig utzig force-pushed the disable-broken-sphinx branch 2 times, most recently from 5dde120 to 1791f2f Compare November 5, 2020 21:26
@utzig
Copy link
Contributor Author

utzig commented Nov 5, 2020

@utzig I am guessing the PR you submitted upstream sphinx-doc/sphinx#8364 is what is needed to fix this? Or are there other problems too?

Dropping the requirements of <3.3 made it fail again, I will add it back; yes that PR is required. There might be other problems but I think with that one merged it already passes here, and will re-test locally.

@utzig
Copy link
Contributor Author

utzig commented Nov 5, 2020

I tested locally both with Sphinx 3.3.x and sphinx-doc/sphinx#8364 and both fail the tests. I think my suggested fix is not complete, it has fixed my issues building docs here but there's probably other things missing.

@@ -11,7 +11,7 @@ jobs:
- 3.0.4
- 3.1.2
- 3.2.0
- git+https://github.com/sphinx-doc/sphinx.git@3.2.x
- git+https://github.com/sphinx-doc/sphinx.git@3.3.x
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@utzig Seems like 3.3.x is really broken in that case. With the current setup with requirements jobs run for 3.3.x, install 3.3.x from source, then uninstall it and fetch 3.2.x to satisfy the requirements. This results in a misleading test job running for 3.3.x.

I think commenting the 3.3.x branch out with a comment, like the master branch for Sphinx 4, is a good solution for now. Can you push a fixup for that? I will merge after, the rest is good.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. I was testing a little bit why it is broken and wanted to be sure the issue is not Breathe related. Turns out some of the fails are due to asserts for valid lineno, which when Sphinx calls self.get_source_info()[1] it goes through docutils into get_source_and_line in the MockStateMachine. So I presume it is possible to have a lineno that is None but the C/CPP domain parsers are currently not allowing for it (after a recent change).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the mock I suggest just returning some arbitrary number.

Copy link
Contributor Author

@utzig utzig Nov 5, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, it passes the tests, but I am not sure that means we should drop the other commit. TBH for doing another release I would rather have it not depending on Sphinx<3.3, because on one of the projects I work on, we already upgraded to 3.3.0! But it is failing for other projects, so maybe for a next release we just wait before 3.3.1? Is there a timeline for that @jakobandersen? Should I drop the requirements @vermeeren?

@vermeeren vermeeren self-assigned this Nov 5, 2020
@vermeeren vermeeren added the packaging Requirements, setup.py, etc label Nov 5, 2020
@jakobandersen
Copy link
Collaborator

(I'll try to get the missing Sphinx PR merged for 3.3.1)

@utzig utzig force-pushed the disable-broken-sphinx branch 2 times, most recently from d30e378 to 1da3aa1 Compare November 5, 2020 22:44
This allows tests passing with Sphinx==3.3.0 and branch 3.3.x (as of
now).

Signed-off-by: Fabio Utzig <[email protected]>
@utzig
Copy link
Contributor Author

utzig commented Nov 5, 2020

@jakobandersen @vermeeren In retrospect I don't think Breathe should dictate a requirement of Sphinx<3.3 because of something broken, since the ABI/API are still compatible, so it was a stupid idea to do it. I dropped the original commit, added a fix to the test mock and updated the branch to get 3.3.x. If it is broken for someone, for any project the person should just fallback to 3.2.1 and or wait for 3.3.1!

@utzig utzig changed the title Disable Sphinx>3.2 and 3.2.x branch Update to Sphinx 3.3.x branch and fix test mock Nov 5, 2020
Copy link
Collaborator

@vermeeren vermeeren left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@utzig I think the discussions are resolved and I agree with your latest comment, so in my opinion this is good for merging as it solved the failing tests properly. Can I get a final ok from you too? I am not entirely sure if this is WIP or not.

@utzig
Copy link
Contributor Author

utzig commented Nov 7, 2020

@utzig I think the discussions are resolved and I agree with your latest comment, so in my opinion this is good for merging as it solved the failing tests properly. Can I get a final ok from you too? I am not entirely sure if this is WIP or not.

It's not WIP, it should be fine for merging!

@vermeeren vermeeren merged commit 1ed43e3 into breathe-doc:master Nov 7, 2020
@vermeeren
Copy link
Collaborator

@utzig Done, thanks!

@utzig utzig deleted the disable-broken-sphinx branch November 7, 2020 20:41
vermeeren added a commit that referenced this pull request Nov 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packaging Requirements, setup.py, etc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants