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

Fix sphinx deprecation warning about env.note_versionchange() #13236

Merged
merged 1 commit into from
May 10, 2019

Conversation

pablogsal
Copy link
Member

@pablogsal pablogsal commented May 10, 2019

The warning:

/home/pablogsal/github/cpython/Doc/tools/extensions/pyspecific.py:274: RemovedInSphinx30Warning: env.note_versionchange() is deprecated. Please use ChangeSetDomain.note_changeset() instead.
  env.note_versionchange('deprecated', version[0], node, self.lineno)

@pablogsal pablogsal merged commit 960bb88 into python:master May 10, 2019
@pablogsal pablogsal deleted the sphinx_warning branch May 10, 2019 21:58
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Dec 2, 2020
https://build.opensuse.org/request/show/852415
by user mcepl + dimstar_suse
- Add CVE-2020-27619-no-eval-http-content.patch fixing
  CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support
  calls eval() on content retrieved via HTTP.
- Add patch sphnix-update-removed-function.patch to no longer call
  a now removed function (gh#python/cpython#13236). As
  a consequence, no longer pin Sphinx version.
- Pin Sphinx version to fix doc subpackage
- Change setuptools and pip version numbers according to new wheels
- Add ignore_pip_deprec_warn.patch to switch of persistently
  failing test.
- Replace bundled wheels for pip and setuptools with the updated ones
  (bsc#1176262 CVE-2019-20916).
- Handful of changes to make python36 compatible with SLE15 and SLE12
  (jsc#ECO-2799, jsc#SLE-13738)
- Rebase bpo23395-PyErr_SetInterrupt-signal.patch
- Fix build with RP
@mcepl
Copy link
Contributor

mcepl commented Dec 5, 2020

@pablogsal I think this is suboptimal solution, because it makes Python dependent on the latest version of Sphinx unnecessarily. It is very easy to make something like this:

--- a/Doc/tools/extensions/pyspecific.py
+++ b/Doc/tools/extensions/pyspecific.py
@@ -231,10 +231,14 @@ class DeprecatedRemoved(Directive):
                                    translatable=False)
             node.append(para)
         env = self.state.document.settings.env
-        env.note_versionchange('deprecated', version[0], node, self.lineno)
+        # new method
+        if hasattr(env, 'get_domain'):
+            env.get_domain('changeset').note_changeset(node)
+        # deprecated pre-Sphinx-2 method
+        else:
+            env.note_versionchange('deprecated', version[0], node, self.lineno)
         return [node] + messages
 
-
 # Support for including Misc/NEWS
 
 issue_re = re.compile('(?:[Ii]ssue #|bpo-)([0-9]+)')

@pablogsal
Copy link
Member Author

@pablogsal I think this is suboptimal solution, because it makes Python dependent on the latest version of Sphinx unnecessarily. It is very easy to make something like this:

--- a/Doc/tools/extensions/pyspecific.py
+++ b/Doc/tools/extensions/pyspecific.py
@@ -231,10 +231,14 @@ class DeprecatedRemoved(Directive):
                                    translatable=False)
             node.append(para)
         env = self.state.document.settings.env
-        env.note_versionchange('deprecated', version[0], node, self.lineno)
+        # new method
+        if hasattr(env, 'get_domain'):
+            env.get_domain('changeset').note_changeset(node)
+        # deprecated pre-Sphinx-2 method
+        else:
+            env.note_versionchange('deprecated', version[0], node, self.lineno)
         return [node] + messages
 
-
 # Support for including Misc/NEWS
 
 issue_re = re.compile('(?:[Ii]ssue #|bpo-)([0-9]+)')

Thanks for pointing that out! Would you like to submit a PR?

bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Dec 7, 2020
https://build.opensuse.org/request/show/853314
by user mcepl + dimstar_suse
- (bsc#1179630) Update sphinx-update-removed-function.patch to
  work with all versions of Sphinx (not binding the Python
  documentation build to the latest verison of Sphinx). Updated
  version mentioned on gh#python/cpython#13236.
- Add CVE-2020-27619-no-eval-http-content.patch fixing
  CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support
  calls eval() on content retrieved via HTTP.
- Add patch sphinx-update-removed-function.patch to no longer call
  a now removed function (gh#python/cpython#13236). As
  a consequence, no longer pin Sphinx version.
- Pin Sphinx version to fix doc subpackage
- Change setuptools and pip version numbers according to new wheels
- Add ignore_pip_deprec_warn.patch to switch of persistently
  failing test.
- Replace bundled wheels for pip and se
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Dec 7, 2020
https://build.opensuse.org/request/show/853313
by user mcepl + dimstar_suse
- Add patch sphinx-update-removed-function.patch to no longer call
  a now removed function and to make documentation build independent of
  the Sphinx version (bsc#1179630, gh#python/cpython#13236).
pablogsal pushed a commit that referenced this pull request Dec 7, 2020
…GH-23662)

The solution in gh##13236 is too strict because it
effectively requires the use of Sphinx >= 2.0. It is not too difficult to
make the same solution more robust so it works with all normal versions
of Sphinx.
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Dec 8, 2020
https://build.opensuse.org/request/show/853314
by user mcepl + dimstar_suse
- (bsc#1179630) Update sphinx-update-removed-function.patch to
  work with all versions of Sphinx (not binding the Python
  documentation build to the latest verison of Sphinx). Updated
  version mentioned on gh#python/cpython#13236.
- Add CVE-2020-27619-no-eval-http-content.patch fixing
  CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support
  calls eval() on content retrieved via HTTP.
- Add patch sphinx-update-removed-function.patch to no longer call
  a now removed function (gh#python/cpython#13236). As
  a consequence, no longer pin Sphinx version.
- Pin Sphinx version to fix doc subpackage
- Change setuptools and pip version numbers according to new wheels
- Add ignore_pip_deprec_warn.patch to switch of persistently
  failing test.
- Replace bundled wheels for pip and se
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Dec 18, 2020
https://build.opensuse.org/request/show/856737
by user mcepl + dimstar_suse
- Adjust sphinx-update-removed-function.patch
- (bsc#1179630) Update sphinx-update-removed-function.patch to
  work with all versions of Sphinx (not binding the Python
  documentation build to the latest verison of Sphinx). Updated
  version mentioned on gh#python/cpython#13236.
- Add CVE-2020-27619-no-eval-http-content.patch fixing
  CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support
  calls eval() on content retrieved via HTTP.
- Add patch sphinx-update-removed-function.patch to no longer call
  a now removed function (gh#python/cpython#13236). As
  a consequence, no longer pin Sphinx version.
- Pin Sphinx version to fix doc subpackage
- Change setuptools and pip version numbers according to new
  wheels (bsc#1179756).
- Add ignore_pip_deprec_warn.patch to switch of persi
adorilson pushed a commit to adorilson/cpython that referenced this pull request Mar 13, 2021
…pythonGH-23662)

The solution in gh#python#13236 is too strict because it
effectively requires the use of Sphinx >= 2.0. It is not too difficult to
make the same solution more robust so it works with all normal versions
of Sphinx.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants