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

requirements.txt updates #485

Merged
merged 2 commits into from
Feb 23, 2024
Merged

Conversation

deb-intel
Copy link
Collaborator

sphinxcontrib-applehelp was recently updated to 1.0.6. This caused a series of compatibility issues between sphinxcontrib-applehelp, sphinx, and breathe, which caused all recent builds to fail. To lessen this problem both now and in the future, we removed hardcoded software versions in the requirements.tx file although we updated sphinx to 7.0 or higher. This will enable the system to pick compatible software versions to match our needs.

@mwasko
Copy link
Contributor

mwasko commented Feb 19, 2024

sphinxcontrib-applehelp was recently updated to 1.0.6. This caused a series of compatibility issues between sphinxcontrib-applehelp, sphinx, and breathe, which caused all recent builds to fail.

It looks like a gap in the requirements list to point to specific sphinxcontrib-applehelp version?

To lessen this problem both now and in the future, we removed hardcoded software versions in the requirements.tx file although we updated sphinx to 7.0 or higher. This will enable the system to pick compatible software versions to match our needs.

How this approach is going to guarantee that our SOF documentation will compile successfully with latest tools version?

@lgirdwood
Copy link
Member

sphinxcontrib-applehelp was recently updated to 1.0.6. This caused a series of compatibility issues between sphinxcontrib-applehelp, sphinx, and breathe, which caused all recent builds to fail.

It looks like a gap in the requirements list to point to specific sphinxcontrib-applehelp version?

To lessen this problem both now and in the future, we removed hardcoded software versions in the requirements.tx file although we updated sphinx to 7.0 or higher. This will enable the system to pick compatible software versions to match our needs.

How this approach is going to guarantee that our SOF documentation will compile successfully with latest tools version?

IIRC, we align with the same versions used by the Zephyr docs (as SOF docs and Zephyr docs use the same framework). @deb-intel is my understanding still correct ?

@deb-intel
Copy link
Collaborator Author

@mwasko @lgirdwood When @intelkevinputnam and I built SOF locally, the build set the proper requirements based on our setting Sphinx to >=7. It automatically new to use sphinxcontrib-applehelp version 1.0.4 instead of 1.0.6 as well as the best version of breathe. The build kept failing because we kept giving it specific versions. I think this will continue to happen every time breathe, docutils, and software we didn't even know about (such as -applehelp) makes updates.

@deb-intel
Copy link
Collaborator Author

IIRC, we align with the same versions used by the Zephyr docs (as SOF docs and Zephyr docs use the same framework). @deb-intel is my understanding still correct ?

@lgirdwood I am not familiar with how Zephyr handles things. I know they no longer have a full-time doc person. I'll ask one of our guys if he can see what's up with their requirements.

@intelkevinputnam
Copy link
Collaborator

I recommend moving to version 7 of sphinx. A good option for a specific version is 7.1.2 as this will have the broadest compatibility for those who might want to build it locally (later versions require Python 10 or better).

@lgirdwood
Copy link
Member

Thanks @deb-intel @intelkevinputnam for explaining.

@lgirdwood
Copy link
Member

@mwasko good for you now ?

@deb-intel deb-intel merged commit 533bf84 into thesofproject:master Feb 23, 2024
4 checks passed
@marc-hb
Copy link
Collaborator

marc-hb commented Feb 24, 2024

When @intelkevinputnam and I built SOF locally,

What is "locally"? Ubuntu, Fedora, other? Which version? Each distribution and even each user has a different combination. Versions were hardcoded in requirements.txt to solve that problem (We already have requirements-lax.txt for more flexibility)

The build kept failing because we kept giving it specific versions.

In that case you just un-hardcode locally and temporarily, find a complete set of versions that works (as you already did) and then snapshot and hardcode that combination. Problem solved for everyone and for a long time as opposed to just on one system for a short time. That has been working and it can work again.

It looks like a gap in the requirements list to point to specific sphinxcontrib-applehelp version?

Yes of course. The solution was to hardcode MORE, not less.

I think this will continue to happen every time breathe, docutils, and software we didn't even know about (such as -applehelp) makes updates.

It will for sure happen again very soon now that all the versions are un-harcoded. In fact it's already happening:

PS: I spent days finding combinations that work, please copy me next time.

breathe==4.29.2
sphinx==4.5.0
docutils==0.17.1

Copy link
Collaborator

Choose a reason for hiding this comment

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

The comment still says "This file hardcodes..."

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

Successfully merging this pull request may close these issues.

5 participants