Fix sphinx-doc__sphinx-9711#14383
Closed
piyushhhxyz wants to merge 2 commits intosphinx-doc:masterfrom
Closed
Conversation
The needs_extensions check was comparing version strings lexicographically, which incorrectly treats '0.6' > '0.10'. This changes the comparison to use packaging.version.parse() for proper semantic version comparison. Fixes sphinx-doc#9711
The needs_extensions check was comparing version strings using plain string comparison (reqversion > extension.version), which incorrectly treats '0.6' as greater than '0.10' because string comparison is character-by-character. This fix uses packaging.version.parse() for proper semantic version comparison, so that '0.10.0' is correctly recognized as newer than '0.6.0'. Fixes sphinx-doc#9711
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix: needs_extensions checks versions using strings
Problem
The
needs_extensionscheck insphinx/extension.pycompared version strings lexicographically (e.g.,'0.6' > '0.10'evaluates toTrue), which incorrectly rejects valid newer versions like0.10.0when the minimum required is0.6.0.Solution
Changed the version comparison to use
packaging.version.parse()for proper semantic version comparison. Sphinx already depends onpackaging, so no new dependencies are needed.Changes
sphinx/extension.py: Importparsefrompackaging.versionand use it to compare versions inverify_needs_extensions()Fixes #9711