Add tests to avoid future regressions #13379
Replies: 3 comments 1 reply
-
Hi Cliff, Thank you for the feedback. The problem in this specific case is that the extension had broken code, by not importing all issued modules, but worked due to side effects of Python's import system. Due to trying (hard!) to preserve backward compatibility in path handling whilst moving from string paths to The wider problem is that Sphinx has hundreds of extensions and themes, if not over 1,000. We have no control over any third party projects. Testing even 50 such projects would massively increase our consumption of CI resource and slow down speed of development. We have (as with most projects) a very small team, but unlike many projects we have hundreds of such third-party plugins that can do nearly anything to the build process -- including overriding private methods, relying on undocumented features, and other creative use of the internals. I strongly encourage most projects to test with Sphinx master from git, which would have found this error. Indeed, the explicit testing we requested from a handful of downstream projects for the pre-releases did discover this error. However, I do apologise for the trouble that this has caused you, your team, and your organisation. We are always grateful for contributions, and I would be happy to review PRs improving our test coverage (I have noted before that I am unhappy with the state of our testing, we have far too many integration tests and too few unit tests, but the design of the application makes the latter a little challenging). Thanks, P.S.
I'm sure you're aware Sphinx has supported markdown documents for some time! A |
Beta Was this translation helpful? Give feedback.
-
@cliffckerr are you working on this already? I have some ideas/suggestions for how you could get started if not; but I also agree with the preceding commentary that the ecosystem is large, and the CI resource overhead added by this could be significant - so it could prove to have some drawbacks. |
Beta Was this translation helpful? Give feedback.
-
Thanks for your replies @AA-Turner and @jayaddison! As the maintainer of several OSS projects (including relatively low-level ones that other libraries depend on), I do very much appreciate the challenge of trying to move forward without introducing breaking changes. Every change breaks someone's workflow, but my guess is that Sphinx extensions are a long-tailed distribution, and just capturing the top 5-10 extensions could potentially be a good compromise. (For example: if a new While unfortunately I won't have time to work on Sphinx tests myself for the foreseeable future, I do have a couple suggestions that hopefully wouldn't be too much work and would be helpful:
Hope that's helpful and thanks for your (enormous) work maintaining this critical package! |
Beta Was this translation helpful? Give feedback.
-
Is your feature request related to a problem? Please describe.
I, like many others, hit #13352, and would prefer if this sort of thing didn't happen in the future -- it's very inconvenient when the CI pipeline starts failing due to a broken dependency.
Describe the solution you'd like
Please include in Sphinx's testing suite regression tests to ensure that Sphinx updates don't break popular third party extensions. Or, if there does need to be a breaking change, give the maintainers of the other packages sufficient warning to provide a fix before the new release.
Describe alternatives you've considered
Um ... mkdocs? 😆
Beta Was this translation helpful? Give feedback.
All reactions