Comments (5)
I think it would also be useful to avoid importing defusedxml
in global scope. It is only used by etree_parse()
, and not every consumer of sphinx.testing
uses this function.
For example, breathe
is currently broken by this. However, it does not use this API and without the import
in global scope, it doesn't have to be updated to depend on defusedxml
(or sphinx[dev]
, as suggested above).
from sphinx.
Ok, I see what happened actually. It's because the dependencies of sphinxcontrib- were not updated accordingly, namely we are installing sphinx
as sphinx
(so we are only using the release dependencies and not the test dependencies for sphinx
).
Is there a way to tell tox to install the sphinx test dependencies in tox.ini
?
PS: The argument against adding defusedxml
as a runtime dependency is that, for consistency, we would also need to add pytest
as a runtime dependency since we are using pytest in sphinx.testing.fixture
. One could argue that because one should have pytest
for using the plugin, we don't need that but technically speaking, both of them should then be present.
Now, I am willing to actually split the test dependencies into dev
and test
dependencies where dev
dependencies would be those needed by extensions and test
dependencies would only be for our tests (in particular, test
would be a superset of dev
, e.g., this would include cython
and setuptools
packages).
from sphinx.
I asked a similar question here: https://github.com/orgs/sphinx-doc/discussions/12333
Happy to close the discussion if this is a better place.
from sphinx.
No, but we should have a better tox.ini which would setup the environment correctly.
from sphinx.
Now, I am willing to actually split the test dependencies into dev and test
yes I feel this is what should happen; I was about to say, your first responses seemed to be conflating sphinx internal development with the actual opened issue of users interacting with sphinx.testing.fixture
😅
(in general, it is a bit of an open question in python packaging, where/how you define internal development dependencies vs defining extra user dependencies)
from sphinx.
Related Issues (20)
- Internationalization doc mentions deprecated transifex-client HOT 1
- 7.3.7: missing `defusedxml` install time dependency HOT 2
- THYDUX COIN 𝕏 🥏
- Multiple labels inside math directives HOT 1
- LaTeX: footnote mark may indicate "Page N, M" but footnote M is already on page N
- Gettext builder cannot extract 'option' directive HOT 4
- `autodoc_class_signature = "separated"` cause a warning for enum with no `__init__` HOT 12
- [search] issues with the new HTML search algorithm HOT 12
- Pre-declared explicit links not working
- add_css_file return wrong URI when dealing with local files on windows platform HOT 6
- [search] Add ability to treat "-" as a normal letter, to not split search term into several words HOT 1
- Import command-line documentation from docopt HOT 2
- Add "skip to main content" a11y feature
- BUG: env.toctree_includes different between parallel and serial builds HOT 2
- LaTeX: for French language and lualatex engine polyglossia and not babel is used contrarily to Sphinx documentation
- [docs] clarify the usage of `versionadded` & co HOT 9
- Re: :scale: for SVG images in HTML builds
- sphinx raises an exception when trying to build python 3.13 doc with devhelp HOT 3
- Yandex Browser ignores the translation ban HOT 1
- Issue with automodule and cython/numpy HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sphinx.