Skip to content

Rework the docs for NEWS/What's New entries #1238

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

Merged
57 changes: 40 additions & 17 deletions core-developers/committing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -80,21 +80,20 @@ to enter the public source tree. Ask yourself the following questions:
Updating NEWS and What's New in Python
--------------------------------------

Almost all changes made to the code base deserve an entry in ``Misc/NEWS.d``.
If the change is particularly interesting for end users (e.g. new features,
significant improvements, or backwards-incompatible changes), then an entry in
the ``What's New in Python`` document (in ``Doc/whatsnew/``) should be added
as well. Changes that affect documentation only generally do not require
a ``NEWS`` entry.
Changes that require NEWS entries
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

There are two notable exceptions to this general principle, and they
both relate to changes that:
Most changes made to the code base deserve an entry in :cpy-file:`Misc/NEWS.d`,
except for the following:

* Already have a ``NEWS`` entry
* Have not yet been included in any formal release (including alpha
and beta releases)
* documentation changes
* test changes
* strictly internal changes with no user-visible effects
* changes that already have a ``NEWS`` entry
* changes that have not yet been included in any formal release
(including alpha and beta releases)

These are the two exceptions:
For the last two, note the following:

#. **If a change is reverted prior to release**, then the corresponding
entry is simply removed. Otherwise, a new entry must be added noting
Expand All @@ -105,8 +104,24 @@ These are the two exceptions:
change and the original** ``NEWS`` **entry remains valid**, then no additional
entry is needed.

If a change needs an entry in ``What's New in Python``, then it is very
likely not suitable for including in a maintenance release.
Changes that require "What's New in Python" entries
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If a change is particularly interesting for end users (e.g. new features,
significant improvements, or backwards-incompatible changes), add an entry in
the "What's New in Python" document (in :cpy-file:`Doc/whatsnew/`)
in addition to the ``NEWS`` entry.

In most cases, it is sufficient to reuse the wording from the ``NEWS`` entry
in the "What's New in Python" entry.

.. note::

A change that needs an entry in "What's New in Python",
is very likely not suitable for inclusion in a maintenance release.

How to add a NEWS entry
^^^^^^^^^^^^^^^^^^^^^^^

``NEWS`` entries go into the ``Misc/NEWS.d`` directory as individual files. The
``NEWS`` entry can be created by using `blurb-it <https://blurb-it.herokuapp.com/>`_,
Expand All @@ -132,6 +147,17 @@ to the standard library). The file name itself should be in the format
As a result, a file name can look something like
``Misc/NEWS.d/next/Library/2017-05-27-16-46-23.gh-issue-12345.Yl4gI2.rst``.

How to write a NEWS entry
^^^^^^^^^^^^^^^^^^^^^^^^^

All ``NEWS`` entries end up being part of the changelog.
The changelog contains *a lot* of entries,
and its intended audience is mainly users, not core devs and contributors.
Take this into consideration when wording your ``NEWS`` entry.
Describe the user-visible effects of your change succinctly and accurately;
avoid long technical elaborations, digressions, and do not expect or require
the reader to have read the actual diff for the change.

The contents of a ``NEWS`` file should be valid reStructuredText. An 80 character
column width should be used. There is no indentation or leading marker in the
file (e.g. ``-``). There is also no need to start the entry with the issue
Expand All @@ -146,9 +172,6 @@ The inline Sphinx roles like ``:func:`` can be used help readers
find more information. You can build HTML and verify that the
link target is appropriate by using :ref:`make html <building-using-make>`.

While Sphinx roles can be beneficial to readers, they are not required.
Inline ````code blocks```` can be used instead.


Working with Git_
-----------------
Expand Down