:orphan:

****************************
Improve a documentation page
****************************

.. This is the no-javascript version of this page. The one most people
   will see (with JavaScript enabled) is improve-page.rst. If you edit
   this page, please also edit that one, and vice versa.

.. only:: html and not epub

We are always interested to hear ideas about improvements to the documentation.

.. only:: translation

   If the bug or suggested improvement concerns the translation of this
   documentation, open an issue or edit the page in
   `translation's repository <TRANSLATION_REPO_>`_ instead.

You have a few ways to ask questions or suggest changes:

- You can start a discussion about the page on the Python discussion forum.
  This link will start a topic in the Documentation category:
  `New Documentation topic <https://discuss.python.org/new-topic?category=documentation>`_.

- You can open an issue on the Python GitHub issue tracker. This link will
  create a new issue with the "docs" label:
  `New docs issue <https://github.com/python/cpython/issues/new?template=documentation.yml>`_.
