[Python-Dev] Split Misc/NEWS into individual files

Doug Hellmann doug at doughellmann.com
Wed Feb 22 13:45:02 EST 2017


Excerpts from Barry Warsaw's message of 2017-02-22 11:42:57 -0500:
> On Feb 22, 2017, at 01:27 PM, Victor Stinner wrote:
> 
> >OpenStack happily fixed this issue one or two years ago with "reno":
> >https://pypi.python.org/pypi/reno
> 
> reno looks interesting but there is at least one thing I think would need
> changing for us.  Aside: I'm not super psyched about its requiring YAML files
> for its input.  Their structure can be fairly arcane for drive-by
> contributors, but I suppose with good documentation and a CI gate, we can live
> with that.
> 
> I'm also not thrilled with having to learn yet another command line tool to
> submit changes to Python.
> 
> The main dissonance for us is I think the sections that reno supports
> 
> https://docs.openstack.org/developer/reno/usage.html
> 
> Our release notes have different sections:
> 
> * Core and Builtins
> * Extension Modules
> * Library
> * Windows
> * C API
> * Documentation
> * Build
> * Tools/Demos
> * Tests
> (others?)
> 
> I don't know if those are configurable in reno or it would require a fork, but
> I'd like to preserve that organizational structure.  If reno can also help
> wrap long lines, enforce/encourage bpo-* mentions, and clean up whitespace,
> then I'm for trying it out.
> 
> -Barry

FWIW, I've been planning to work on a demonstration patch using
reno for cpython so we can identify feature gaps like this. I have
permission to work on this as part of my day job, to make reno
suitable for both communities.  I'm at a conference this week, but
will try to put something together after I get back to work,
and definitely before the language summit at PyCon.

We have a patch up for review to support configuring the sections,
including the keys within the input file and the titles in the
output, so that should take care of that gap.

The use of lists within each section is also something I think we could
either make smart or explicitly configurable, and that would simplify
the file format to just section keys and an RST blob.

The "report" command assembles the RST embedded in the YAML and
then passes it through docutils to produce text output. In the
process, it does wrap lines, standardize bullets for lists, etc.
For an example of the output, you can look at the release announcement
for nova from earlier today [1].  The content of that email up to
the git log output at the end was produced by reno based on the input
files in [2].

Doug

[1] http://lists.openstack.org/pipermail/release-announce/2017-February/000784.html
[2] http://git.openstack.org/cgit/openstack/nova/tree/releasenotes/notes


More information about the Python-Dev mailing list