-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
sphinxcontrib.applehelp should be distributed as sphinxcontrib_applehelp #11130
Comments
I think this issue is blowing up my CI - any workarounds? |
This currently breaks downstream builds like ninemoreminutes/xapian-bindings |
Any update on this? I can't install my package's dev environment because of this issue:
|
This breaks all sphinx installations where sphinx is installed through another module's In my case this doesn't prevent installation, but sphinx-build will fail at run time, regardless of sphinx version:
Are there any plans to fix this, or known workarounds? Edit: a workaround I found is to install sphinx manually using |
- build markdown/HTML versions, use separate makefile targets/hecat configuration files for each export format/push task - add non-free.md generation step to markdown export hecat configuration file - add makefile targets to push exports to https://github.com/awesome-selfhosted/awesome-selfhosted and https://github.com/nodiscc/awesome-selfhosted-html-preview - install: install sphinx <7 directly using pip since it can't be installed from setup.py sphinx-doc/sphinx#11130 - pin sphinx to version <7, sphinx-design is not compatible with sphinx 7 executablebooks/sphinx-design#130 - add sphinx configuration file
- build markdown/HTML versions, use separate makefile targets/hecat configuration files for each export format/push task - add non-free.md generation step to markdown export hecat configuration file - add makefile targets to push exports to https://github.com/awesome-selfhosted/awesome-selfhosted and https://github.com/nodiscc/awesome-selfhosted-html-preview - install: install sphinx <7 directly using pip since it can't be installed from setup.py sphinx-doc/sphinx#11130 - pin sphinx to version <7, sphinx-design is not compatible with sphinx 7 executablebooks/sphinx-design#130 - add sphinx configuration file - tools/makefile: monkeypatch furo theme to display build tools and license link in footer (furo/sphinx does not provide a way to customize this pradyunsg/furo#612) - fix dependencies between makefile targets - setup/document SSH deploy keys usage - each repository requires a different deploy key, trying to add a deploy key to repo B, which has already been added to repo A results in error 'this key already exists' - set git remote URL to use ssh URIs before push (required to use SSH deploy keys) - when referencing an environment secret, environment: key must be defined explicitly for the step (https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#referencing-an-environment) - use a single SSH key file/no ssh-agent, else git push will try to use the first registered key and fail with permission denied when trying to push to the HTML repository - use variables to identify target repos - use temporary repositories as push destination
- executablebooks/sphinx-design#130 - sphinx must be installed manually/ install through install_requires still blocked by sphinx-doc/sphinx#11130
@AA-Turner any chance of reverting the commit responsible for this? |
The problem was fixed by using Invoking |
Describe the bug
If you look at how the distribution packages are named here: https://pypi.org/simple/sphinxcontrib-applehelp/ you will see that for some reason this package changed name in the last version.
sphinx
package didn't update to depend on this package correctly.For no good reason
pip
seems to replace the dot in the package name with a hyphen, and this makes it possible to installsphinx
usingpip
, butpkg_resources
doesn't do it (that's correct way to do it), and sosphinx
isn't installable in this way. Most importantly, this leads tobuild_sphinx
setuptools
extension becoming unusable.In other words, it's no longer possible to specify
sphinx
insetup_requires
list, because that would lead tosetuptools
trying to resolve dependencies forsphinx
, but failing to do so becausesphinx
needssphinxcontrib_applehelp
, but such dependency cannot be installed, because once found package calledsphinxcontrib.applehelp
pkg_resources
will not try to look for a different version or anything like that, it'll just declare that the package doesn't exist.In general, you shouldn't upload a package named differently into the same repository: the packaging system is already in shambles, and it's sure not prepared to deal with such cases. Why go looking for trouble if the obvious way was to use simpler naming schemes?
This behavior exists at least in Python 3.8,
setuptools
56.0.0.How to Reproduce
Create
setup.py
and specifysphinx
insetup_requires
list.Environment Information
BTW, this is the commit responsible for the breakage.
Also, the fact that using
pyproject.toml
is more recent, doesn't mean that it's better. It's actually worse... There's absolutely no reason to use it. Undoing this whole commit would've made the project a little bit better.The text was updated successfully, but these errors were encountered: