[libvirt PATCH v2 0/3] news: Convert to reStructuredText

browse: https://gitlab.com/abologna/libvirt/-/tree/news-convert-cleanup git fetch: https://gitlab.com/abologna/libvirt.git news-convert-cleanup Changes since [v1] * use '*' for all bullet points, regardless of how deep they're nested; * patches 1/5 and 2/5 have been pushed. [v1] https://www.redhat.com/archives/libvir-list/2020-June/msg00061.html Andrea Bolognani (3): news: Output reStructuredText for the ASCII version news: Convert to reStructuredText news: Add information about old releases Makefile.am | 22 +- NEWS.rst | 4077 ++++++++++++++++++++++++++++ docs/Makefile.am | 27 +- docs/libvirt.css | 15 - docs/news-2005.html.in | 28 - docs/news-2006.html.in | 354 --- docs/news-2007.html.in | 534 ---- docs/news-2008.html.in | 580 ---- docs/news-2009.html.in | 1603 ----------- docs/news-2010.html.in | 2218 --------------- docs/news-2011.html.in | 3314 ----------------------- docs/news-2012.html.in | 3012 --------------------- docs/news-2013.html.in | 3675 ------------------------- docs/news-2014.html.in | 3418 ------------------------ docs/news-2015.html.in | 2864 -------------------- docs/news-2016.html.in | 3740 -------------------------- docs/news-ascii.xsl | 69 - docs/news-html.xsl | 106 - docs/news.rng | 72 - docs/news.xml | 5473 -------------------------------------- scripts/reformat-news.py | 102 - tests/virschematest.c | 2 - 22 files changed, 4089 insertions(+), 31216 deletions(-) create mode 100644 NEWS.rst delete mode 100644 docs/news-2005.html.in delete mode 100644 docs/news-2006.html.in delete mode 100644 docs/news-2007.html.in delete mode 100644 docs/news-2008.html.in delete mode 100644 docs/news-2009.html.in delete mode 100644 docs/news-2010.html.in delete mode 100644 docs/news-2011.html.in delete mode 100644 docs/news-2012.html.in delete mode 100644 docs/news-2013.html.in delete mode 100644 docs/news-2014.html.in delete mode 100644 docs/news-2015.html.in delete mode 100644 docs/news-2016.html.in delete mode 100644 docs/news-ascii.xsl delete mode 100644 docs/news-html.xsl delete mode 100644 docs/news.rng delete mode 100644 docs/news.xml delete mode 100755 scripts/reformat-news.py -- 2.25.4

The ASCII output our scripts produce is already very close to reStructuredText, and with just a few extra tweaks we can get almost all of the way there. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- docs/news-ascii.xsl | 40 +++++++++++++++++++++++++++++++++------- scripts/reformat-news.py | 20 ++++++++++---------- 2 files changed, 43 insertions(+), 17 deletions(-) diff --git a/docs/news-ascii.xsl b/docs/news-ascii.xsl index 8dacae934c..9f6c61a3c6 100644 --- a/docs/news-ascii.xsl +++ b/docs/news-ascii.xsl @@ -8,36 +8,48 @@ <!-- Document --> <xsl:template match="/libvirt"> - <xsl:text>libvirt releases + <xsl:text>================ +libvirt releases ================ + +This is the list of official releases for libvirt, along with an overview of +the changes introduced by each of them. + +For a more fine-grained view, use the `git log`_. </xsl:text> <xsl:apply-templates select="release"/> <xsl:text> -============================================================================== + Older libvirt releases didn't have proper release notes: if you are interested -in changes between them, you should check out docs/news-*.html or the full git +in changes between them, you should check out docs/news-\*.html or the full git log (see instructions in ChangeLog). + + +.. _git log: https://gitlab.com/libvirt/libvirt/-/commits/master </xsl:text> </xsl:template> <!-- Release --> <xsl:template match="release"> <xsl:text> -# </xsl:text> + +</xsl:text> <xsl:value-of select="@version"/> <xsl:text> (</xsl:text> <xsl:value-of select="@date"/> <xsl:text>) +=================== </xsl:text> + <xsl:apply-templates select="section"/> </xsl:template> <!-- Section --> <xsl:template match="section"> <xsl:text> -* </xsl:text> +* **</xsl:text> <xsl:value-of select="@title"/> - <xsl:text> + <xsl:text>** </xsl:text> <xsl:apply-templates select="change"/> </xsl:template> @@ -60,10 +72,24 @@ log (see instructions in ChangeLog). <!-- Change description --> <xsl:template match="description"> + <xsl:text> +</xsl:text> <xsl:text>|</xsl:text> <!-- This will be removed when reformatting --> - <xsl:value-of select="normalize-space()"/> + <xsl:apply-templates/> <xsl:text> </xsl:text> </xsl:template> + <!-- Regular text in change description --> + <xsl:template match="description//text()"> + <xsl:value-of select="normalize-space()"/> + </xsl:template> + + <!-- <code> HTML tag in change description --> + <xsl:template match="description//code"> + <xsl:text disable-output-escaping="yes"> ``</xsl:text> + <xsl:apply-templates/> + <xsl:text disable-output-escaping="yes">`` </xsl:text> + </xsl:template> + </xsl:stylesheet> diff --git a/scripts/reformat-news.py b/scripts/reformat-news.py index 7bc752d821..d1c3906bd8 100755 --- a/scripts/reformat-news.py +++ b/scripts/reformat-news.py @@ -61,22 +61,22 @@ def reformat(line): # on the first character marker = line[0] - # Release - if marker == '#': + # Section + if marker == '*': initial_indent = 0 indent = 2 - # Section - elif marker == '*': - initial_indent = 2 - indent = 4 # Change summary elif marker == '-': - initial_indent = 4 - indent = 6 + initial_indent = 2 + indent = 4 + # We use different markers to be able to tell apart the various + # possible indentation levels, but we want to always output the + # same marker in the generated file + line = '*' + line[1:] # Change description elif marker == '|': - initial_indent = 8 - indent = 8 + initial_indent = 4 + indent = 4 # In this one case, the marker should not ultimately show # up in the output file, so we strip it before moving on line = line[1:] -- 2.25.4

Instead of storing release notes as XML and then converting them to HTML and ASCII at build time using XSLT and a custom script, we can use reStructuredText as both the source and ASCII representation and generate HTML from it using the same tooling we already use for the rest of the documentation. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- Makefile.am | 22 +- NEWS.rst | 3362 +++++++++++++++++++++++ docs/Makefile.am | 27 +- docs/libvirt.css | 15 - docs/news-ascii.xsl | 95 - docs/news-html.xsl | 106 - docs/news.rng | 72 - docs/news.xml | 5473 -------------------------------------- scripts/reformat-news.py | 102 - tests/virschematest.c | 2 - 10 files changed, 3374 insertions(+), 5902 deletions(-) create mode 100644 NEWS.rst delete mode 100644 docs/news-ascii.xsl delete mode 100644 docs/news-html.xsl delete mode 100644 docs/news.rng delete mode 100644 docs/news.xml delete mode 100755 scripts/reformat-news.py diff --git a/Makefile.am b/Makefile.am index d56deeb080..3b93170bc6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -46,6 +46,7 @@ EXTRA_DIST = \ README.rst \ AUTHORS.in \ CONTRIBUTING.rst \ + NEWS.rst \ scripts/apibuild.py \ scripts/augeas-gentest.py \ build-aux/check-spacing.pl \ @@ -69,7 +70,6 @@ EXTRA_DIST = \ scripts/minimize-po.py \ scripts/mock-noinline.py \ scripts/prohibit-duplicate-header.py \ - scripts/reformat-news.py \ scripts/test-wrap-argv.py \ build-aux/syntax-check.mk \ build-aux/useless-if-before-free \ @@ -83,26 +83,6 @@ EXTRA_DIST = \ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libvirt.pc libvirt-qemu.pc libvirt-lxc.pc libvirt-admin.pc -NEWS: \ - $(srcdir)/docs/news.xml \ - $(srcdir)/docs/news-ascii.xsl \ - $(top_srcdir)/scripts/reformat-news.py - $(AM_V_GEN) \ - if [ -x $(XSLTPROC) ]; then \ - $(XSLTPROC) --nonet \ - $(srcdir)/docs/news-ascii.xsl \ - $(srcdir)/docs/news.xml \ - >$@-tmp \ - || { rm -f $@-tmp; exit 1; }; \ - $(RUNUTF8) $(PYTHON) $(top_srcdir)/scripts/reformat-news.py $@-tmp >$@ \ - || { rm -f $@-tmp; exit 1; }; \ - rm -f $@-tmp; \ - fi -EXTRA_DIST += \ - $(srcdir)/docs/news.xml \ - $(srcdir)/docs/news-ascii.xsl \ - $(NULL) - rpm: clean @(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.xz) diff --git a/NEWS.rst b/NEWS.rst new file mode 100644 index 0000000000..e4d52a96e9 --- /dev/null +++ b/NEWS.rst @@ -0,0 +1,3362 @@ +================ +libvirt releases +================ + +This is the list of official releases for libvirt, along with an overview of +the changes introduced by each of them. + +For a more fine-grained view, use the `git log`_. + + +v6.5.0 (unreleased) +=================== + +* **New features** + +* **Improvements** + +* **Bug fixes** + + +v6.4.0 (2020-06-02) +=================== + +* **New features** + + * qemu: Add support for pvscsi controllers + + pvscsi is the VMware paravirtualized SCSI controller, which has been + supported in QEMU for a number of years. + + * cpu: Report model information for ARM CPUs + + ``virsh capabilities`` will now include information about the host CPU when + run on ARM machines. + +* **Improvements** + + * qemu: stricter validation for disk type='lun' + + The 'lun' type is meant for SCSI command passthrough, which can't be + achieved if qemu's block layer features are used. Disk type='lun' is now + allowed only when the format is 'raw' and no other block layer features are + requested. + +* **Bug fixes** + + * qemu: fixed regression in network device hotplug with new qemu versions + + Starting from QEMU-5.0 it's required to conform to strict schema when + hotplugging network devices. Libvirt didn't conform to the schema so in + versions prior to 6.4.0 network device hotplug fails in certain cases. This + version fixes it and adds stricter testing to prevent further issues. + + * remote: Look up libxl driver correctly + + This makes ``xen://`` connection URIs usable in split daemon mode. + + * systemd: Start libvirtd after firewalld/iptables services + + This solves an issue where iptables rules and chains created by libvirtd + would get removed by a service started after it. + + * network: Re-create iptables chains on firewalld restart + + firewalld resets all iptables rules and chains on restart, and this + includes deleting those created by libvirt. [...] diff --git a/docs/Makefile.am b/docs/Makefile.am index ba538e55a0..d8109bb65c 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -316,16 +316,18 @@ manpages/virkeyname-%.rst: $(top_srcdir)/src/keycodemapdb/data/keymaps.csv \ manpagesdir = $(HTML_DIR)/manpages manpages_DATA = $(manpages_html) -# Generate hvsupport.html and news.html first, since they take one extra step. +# Generate hvsupport.html first, since it takes one extra step. dot_html_generated_in = \ hvsupport.html.in \ - news.html.in + $(NULL) dot_html_in = \ $(notdir $(wildcard $(srcdir)/*.html.in)) dot_rst = \ $(notdir $(wildcard $(srcdir)/*.rst)) dot_rst_html_in = \ - $(dot_rst:%.rst=%.html.in) + $(dot_rst:%.rst=%.html.in) \ + news.html.in \ + $(NULL) dot_html = \ $(dot_html_generated_in:%.html.in=%.html) \ $(dot_html_in:%.html.in=%.html) \ @@ -405,19 +407,6 @@ hvsupport.html.in: $(top_srcdir)/scripts/hvsupport.py $(api_DATA) \ $(AM_V_GEN)$(RUNUTF8) $(PYTHON) $(top_srcdir)/scripts/hvsupport.py \ $(top_srcdir) $(top_builddir) > $@ || { rm $@ && exit 1; } -news.html.in: \ - $(srcdir)/news.xml \ - $(srcdir)/news-html.xsl - $(AM_V_GEN)$(XSLTPROC) --nonet \ - $(srcdir)/news-html.xsl \ - $(srcdir)/news.xml \ - >$@ \ - || { rm -f $@; exit 1; }; -EXTRA_DIST += \ - $(srcdir)/news.xml \ - $(srcdir)/news.rng \ - $(srcdir)/news-html.xsl - %.png: %.fig convert -rotate 90 $< $@ @@ -428,6 +417,12 @@ manpages/%.html.in: manpages/%.rst -e 's|RUNSTATEDIR|$(runstatedir)|g' | \ $(RST2HTML) --strict > $@ || { rm $@ && exit 1; } +news.html.in: $(top_srcdir)/NEWS.rst + $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \ + $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; } + +CLEANFILES += news.html.in + %.html.in: %.rst $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \ $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; } diff --git a/docs/libvirt.css b/docs/libvirt.css index a2c9778e03..3f0fd93089 100644 --- a/docs/libvirt.css +++ b/docs/libvirt.css @@ -560,21 +560,6 @@ td.enumvalue { color: darkred; } -ul.news-section-content { - margin-top: 0.5em; -} - -ul.news-section-content li dl dt { - margin: 0; -} - -ul.news-section-content li dl dd { - margin-left: 1em; - margin-right: 0; - margin-top: 0.5em; - margin-bottom: 0.5em; -} - .literal, code { font-family: monospace; background: #eeeeee; diff --git a/docs/news-ascii.xsl b/docs/news-ascii.xsl deleted file mode 100644 index 9f6c61a3c6..0000000000 --- a/docs/news-ascii.xsl +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - <xsl:output method="text" encoding="UTF-8"/> - - <!-- This XSLT stylesheet can be applied to the XML version of the release - notes to produce a plain text document. The output document is not - formatted properly and needs to be processed further --> - - <!-- Document --> - <xsl:template match="/libvirt"> - <xsl:text>================ -libvirt releases -================ - -This is the list of official releases for libvirt, along with an overview of -the changes introduced by each of them. - -For a more fine-grained view, use the `git log`_. -</xsl:text> - <xsl:apply-templates select="release"/> - <xsl:text> - -Older libvirt releases didn't have proper release notes: if you are interested -in changes between them, you should check out docs/news-\*.html or the full git -log (see instructions in ChangeLog). - - -.. _git log: https://gitlab.com/libvirt/libvirt/-/commits/master -</xsl:text> - </xsl:template> - - <!-- Release --> - <xsl:template match="release"> - <xsl:text> - -</xsl:text> - <xsl:value-of select="@version"/> - <xsl:text> (</xsl:text> - <xsl:value-of select="@date"/> - <xsl:text>) -=================== -</xsl:text> - - <xsl:apply-templates select="section"/> - </xsl:template> - - <!-- Section --> - <xsl:template match="section"> - <xsl:text> -* **</xsl:text> - <xsl:value-of select="@title"/> - <xsl:text>** -</xsl:text> - <xsl:apply-templates select="change"/> - </xsl:template> - - <!-- Change --> - <xsl:template match="change"> - <xsl:text> -</xsl:text> - <xsl:apply-templates select="summary"/> - <xsl:apply-templates select="description"/> - </xsl:template> - - <!-- Change summary --> - <xsl:template match="summary"> - <xsl:text>- </xsl:text> - <xsl:value-of select="normalize-space()"/> - <xsl:text> -</xsl:text> - </xsl:template> - - <!-- Change description --> - <xsl:template match="description"> - <xsl:text> -</xsl:text> - <xsl:text>|</xsl:text> <!-- This will be removed when reformatting --> - <xsl:apply-templates/> - <xsl:text> -</xsl:text> - </xsl:template> - - <!-- Regular text in change description --> - <xsl:template match="description//text()"> - <xsl:value-of select="normalize-space()"/> - </xsl:template> - - <!-- <code> HTML tag in change description --> - <xsl:template match="description//code"> - <xsl:text disable-output-escaping="yes"> ``</xsl:text> - <xsl:apply-templates/> - <xsl:text disable-output-escaping="yes">`` </xsl:text> - </xsl:template> - -</xsl:stylesheet> diff --git a/docs/news-html.xsl b/docs/news-html.xsl deleted file mode 100644 index ec031c6d15..0000000000 --- a/docs/news-html.xsl +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0"?> -<xsl:stylesheet version="1.0" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - <xsl:output method="xml" indent="yes" encoding="UTF-8"/> - - <!-- This XSLT stylesheet can be applied to the XML version of the release - notes to produce an HTML document suitable for further processing. - In particular, the final output will end up on the libvirt website --> - - <!-- Document --> - <xsl:template match="/libvirt"> - <xsl:text disable-output-escaping="yes"><!DOCTYPE html> -</xsl:text> - <html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> - </head> - <body> - <xsl:text disable-output-escaping="yes"> - - <!-- DO NOT EDIT THIS FILE! It was generated automatically. - Edit the source file (news.xml) instead --> - - </xsl:text> - <h1>Releases</h1> - <p>This is the list of official releases for libvirt, along with an - overview of the changes introduced by each of them.</p> - <p>For a more fine-grained view, use the - <a href="https://gitlab.com/libvirt/libvirt/-/commits/master">git log</a>. - </p> - <xsl:apply-templates select="release"/> - <p>Older libvirt releases didn't have proper release notes, - and as such are not included in this page: if you're looking - for information about them, start from those made in - <a href="news-2016.html">2016</a> and work your way back.</p> - </body> - </html> - </xsl:template> - - <!-- Release --> - <xsl:template match="release"> - <h3> - <a> - <xsl:attribute name="id"> - <xsl:value-of select="@version"/> - </xsl:attribute> - <strong> - <xsl:value-of select="@version"/> - <xsl:text> (</xsl:text> - <xsl:value-of select="@date"/> - <xsl:text>)</xsl:text> - </strong> - </a> - </h3> - <ul> - <xsl:apply-templates select="section"/> - </ul> - </xsl:template> - - <!-- Section --> - <xsl:template match="section"> - <li> - <strong> - <xsl:value-of select="@title"/> - </strong> - <xsl:if test="*"> - <ul class="news-section-content"> - <xsl:apply-templates select="change"/> - </ul> - </xsl:if> - </li> - </xsl:template> - - <!-- Change --> - <xsl:template match="change"> - <li> - <dl> - <dt> - <xsl:apply-templates select="summary"/> - </dt> - <dd> - <xsl:apply-templates select="description"/> - </dd> - </dl> - </li> - </xsl:template> - - <!-- Change summary --> - <xsl:template match="summary"> - <xsl:apply-templates/> - </xsl:template> - - <!-- Change description --> - <xsl:template match="description"> - <xsl:apply-templates/> - </xsl:template> - - <!-- <code> HTML tag --> - <xsl:template match="code"> - <xsl:text disable-output-escaping="yes"><code></xsl:text> - <xsl:apply-templates/> - <xsl:text disable-output-escaping="yes"></code></xsl:text> - </xsl:template> - -</xsl:stylesheet> diff --git a/docs/news.rng b/docs/news.rng deleted file mode 100644 index a633e22a7d..0000000000 --- a/docs/news.rng +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0"?> -<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> - <start> - <ref name="libvirt"/> - </start> - - <define name="libvirt"> - <element name="libvirt"> - <oneOrMore> - <ref name="release"/> - </oneOrMore> - </element> - </define> - - <define name="release"> - <element name="release"> - <attribute name="version"> - <data type="string"> - <param name="pattern">v[0-9]+\.[0-9]+\.[0-9]+</param> - </data> - </attribute> - <attribute name="date"> - <data type="string"> - <param name="pattern">[0-9]{4}-[0-9]{2}-[0-9]{2}|unreleased</param> - </data> - </attribute> - <oneOrMore> - <ref name="section"/> - </oneOrMore> - </element> - </define> - - <define name="section"> - <element name="section"> - <attribute name="title"> - <data type="string"/> - </attribute> - <zeroOrMore> - <ref name="change"/> - </zeroOrMore> - </element> - </define> - - <define name="change"> - <element name="change"> - <element name="summary"> - <data type="string"> - <!-- Use literal newline instead of \n for bug in libxml2 2.7.6 --> - <param name="pattern">\n[^ -]+\n +</param> - </data> - </element> - <optional> - <element name="description"> - <ref name="description"/> - </element> - </optional> - </element> - </define> - - <define name="description"> - <oneOrMore> - <choice> - <text/> - <element name="code"> - <text/> - </element> - </choice> - </oneOrMore> - </define> - -</grammar> diff --git a/docs/news.xml b/docs/news.xml deleted file mode 100644 index 18d96af048..0000000000 --- a/docs/news.xml +++ /dev/null @@ -1,5473 +0,0 @@ -<?xml version="1.0"?> - -<!-- libvirt release notes - - This file will be processed to produce both HTML and plain text versions - of the release notes. - - Keep the style consistent with existing entries as much as possible. - - Each change should be documented by a short, one-sentence summary, which - should fit in a single line and should not contain any formatting tags. - - You can optionally add a description if you feel like the summary alone is - not enough to document the change accurately. The description may contain - a <code> tag for switching to non-proportional font. No other tags are - allowed. - - Lines should be kept under 80 columns, and should not exceed 100 columns. - - This file is validated against docs/news.rng schema. - - Use the following template to add a new release section: - - <release version="FIXME" date="unreleased"> - <section title="New features"> - </section> - <section title="Improvements"> - </section> - <section title="Bug fixes"> - </section> - </release> - - If relevant for a given release, add a section for these too: - - <section title="Packaging changes"> - </section> - <section title="Removed features"> - </section> - <section title="Security"> - </section> - - --> - -<libvirt> - <release version="v6.5.0" date="unreleased"> - <section title="New features"> - </section> - <section title="Improvements"> - </section> - <section title="Bug fixes"> - </section> - </release> - <release version="v6.4.0" date="2020-06-02"> - <section title="New features"> - <change> - <summary> - qemu: Add support for pvscsi controllers - </summary> - <description> - pvscsi is the VMware paravirtualized SCSI controller, which has been - supported in QEMU for a number of years. - </description> - </change> - <change> - <summary> - cpu: Report model information for ARM CPUs - </summary> - <description> - <code>virsh capabilities</code> will now include information about - the host CPU when run on ARM machines. - </description> - </change> - </section> - <section title="Improvements"> - <change> - <summary> - qemu: stricter validation for disk type='lun' - </summary> - <description> - The 'lun' type is meant for SCSI command passthrough, which can't be - achieved if qemu's block layer features are used. Disk type='lun' is now - allowed only when the format is 'raw' and no other block layer features - are requested. - </description> - </change> - </section> - <section title="Bug fixes"> - <change> - <summary> - qemu: fixed regression in network device hotplug with new qemu versions - </summary> - <description> - Starting from QEMU-5.0 it's required to conform to strict schema when - hotplugging network devices. Libvirt didn't conform to the schema so - in versions prior to 6.4.0 network device hotplug fails in certain - cases. This version fixes it and adds stricter testing to prevent - further issues. - </description> - </change> - <change> - <summary> - remote: Look up libxl driver correctly - </summary> - <description> - This makes <code>xen://</code> connection URIs usable in split daemon - mode. - </description> - </change> - <change> - <summary> - systemd: Start libvirtd after firewalld/iptables services - </summary> - <description> - This solves an issue where iptables rules and chains created by - libvirtd would get removed by a service started after it. - </description> - </change> - <change> - <summary> - network: Re-create iptables chains on firewalld restart - </summary> - <description> - firewalld resets all iptables rules and chains on restart, and this - includes deleting those created by libvirt. - </description> - </change> - </section> - </release> [...] diff --git a/scripts/reformat-news.py b/scripts/reformat-news.py deleted file mode 100755 index d1c3906bd8..0000000000 --- a/scripts/reformat-news.py +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env python3 - -# reformat-news.py: Reformat the NEWS file properly -# -# Copyright (C) 2017 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library. If not, see -# <http://www.gnu.org/licenses/>. - -import sys - -COLUMNS = 80 - - -def reformat_with_indent(text, initial_indent, indent): - - res = "" - line = initial_indent - - for word in text.split(): - - # If adding one more word (plus a whitespace, plus a newline) - # to the current line would push us over the desired number - # of columns we start a new line instead - if len(line) + len(word) > (COLUMNS - 2): - res = res + line + "\n" - line = indent - - # We need to take care when we've just started a new line, - # as we don't want to add any additional leading whitespace - # in that case - if line == indent or line == initial_indent: - line = line + word - else: - line = line + " " + word - - # Append whatever's left - res = res + line - - return res - - -def reformat(line): - - # Empty lines don't need to be reformatted or even inspected - if len(line) == 0: - return line - - # For all non-empty lines, we decide the indentation level based - # on the first character - marker = line[0] - - # Section - if marker == '*': - initial_indent = 0 - indent = 2 - # Change summary - elif marker == '-': - initial_indent = 2 - indent = 4 - # We use different markers to be able to tell apart the various - # possible indentation levels, but we want to always output the - # same marker in the generated file - line = '*' + line[1:] - # Change description - elif marker == '|': - initial_indent = 4 - indent = 4 - # In this one case, the marker should not ultimately show - # up in the output file, so we strip it before moving on - line = line[1:] - # Anything else should be left as-is - else: - return line - - return reformat_with_indent(line, " " * initial_indent, " " * indent) - - -def main(args): - - if len(args) < 2: - sys.stdout.write("Usage: " + args[0] + " FILE\n") - sys.exit(1) - - with open(args[1], 'r') as f: - for line in f: - print(reformat(line.strip())) - - -if __name__ == "__main__": - main(sys.argv) diff --git a/tests/virschematest.c b/tests/virschematest.c index e4a440afb0..8720031375 100644 --- a/tests/virschematest.c +++ b/tests/virschematest.c @@ -225,8 +225,6 @@ mymain(void) DO_TEST_DIR("storagevol.rng", "storagevolxml2xmlin", "storagevolxml2xmlout", "storagevolschemadata"); - DO_TEST_FILE("../news.rng", "../docs/news.xml"); - return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } -- 2.25.4

Until libvirt 2.5.0 we didn't have a real process for release notes in place, and we just published the list of commits that had made it into each release, dividing them into categories that mostly matched the sections we use today. Those documents haven't been relevant for years, but they're still in the git repository and collectively take up almost 2 MiB of disk space. Let's import the only valuable piece of information they contain, the release date for each libvirt versions, into the current document and then drop them for good. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- NEWS.rst | 721 +++++++- docs/news-2005.html.in | 28 - docs/news-2006.html.in | 354 ---- docs/news-2007.html.in | 534 ------ docs/news-2008.html.in | 580 ------- docs/news-2009.html.in | 1603 ----------------- docs/news-2010.html.in | 2218 ------------------------ docs/news-2011.html.in | 3314 ----------------------------------- docs/news-2012.html.in | 3012 -------------------------------- docs/news-2013.html.in | 3675 --------------------------------------- docs/news-2014.html.in | 3418 ------------------------------------ docs/news-2015.html.in | 2864 ------------------------------ docs/news-2016.html.in | 3740 ---------------------------------------- 13 files changed, 718 insertions(+), 25343 deletions(-) delete mode 100644 docs/news-2005.html.in delete mode 100644 docs/news-2006.html.in delete mode 100644 docs/news-2007.html.in delete mode 100644 docs/news-2008.html.in delete mode 100644 docs/news-2009.html.in delete mode 100644 docs/news-2010.html.in delete mode 100644 docs/news-2011.html.in delete mode 100644 docs/news-2012.html.in delete mode 100644 docs/news-2013.html.in delete mode 100644 docs/news-2014.html.in delete mode 100644 docs/news-2015.html.in delete mode 100644 docs/news-2016.html.in diff --git a/NEWS.rst b/NEWS.rst index e4d52a96e9..d7c4473dcb 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -3354,9 +3354,724 @@ v2.5.0 (2016-12-04) * Fix compilation on macOS -Older libvirt releases didn't have proper release notes: if you are interested -in changes between them, you should check out docs/news-\*.html or the full git -log (see instructions in ChangeLog). +v2.4.0 (2016-11-01) +=================== + +No release notes. [...] diff --git a/docs/news-2005.html.in b/docs/news-2005.html.in deleted file mode 100644 index 8d6dc150d3..0000000000 --- a/docs/news-2005.html.in +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - </head> - <body> - <h1>Releases (2005)</h1> - <p>Here is the list of official releases made during the year 2005. - </p> - <p>It is also possible to just use - the <a href="downloads.html">GIT version or snapshot</a>, - contact the mailing list and check - the <a href="https://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> - to gauge progress. - </p> - - <h3>0.0.1: Dec 19 2005</h3> - <ul> - <li>Features:<br/> - First release,<br/> - Basic management of existing Xen domains,<br/> - Minimal autogenerated Python bindings<br/> - </li> - </ul> [...] -- 2.25.4

On a Wednesday in 2020, Andrea Bolognani wrote:
browse: https://gitlab.com/abologna/libvirt/-/tree/news-convert-cleanup git fetch: https://gitlab.com/abologna/libvirt.git news-convert-cleanup
Changes since [v1]
* use '*' for all bullet points, regardless of how deep they're nested;
* patches 1/5 and 2/5 have been pushed.
[v1] https://www.redhat.com/archives/libvir-list/2020-June/msg00061.html
Andrea Bolognani (3): news: Output reStructuredText for the ASCII version news: Convert to reStructuredText news: Add information about old releases
Makefile.am | 22 +- NEWS.rst | 4077 ++++++++++++++++++++++++++++ docs/Makefile.am | 27 +- docs/libvirt.css | 15 - docs/news-2005.html.in | 28 - docs/news-2006.html.in | 354 --- docs/news-2007.html.in | 534 ---- docs/news-2008.html.in | 580 ---- docs/news-2009.html.in | 1603 ----------- docs/news-2010.html.in | 2218 --------------- docs/news-2011.html.in | 3314 ----------------------- docs/news-2012.html.in | 3012 --------------------- docs/news-2013.html.in | 3675 ------------------------- docs/news-2014.html.in | 3418 ------------------------ docs/news-2015.html.in | 2864 -------------------- docs/news-2016.html.in | 3740 -------------------------- docs/news-ascii.xsl | 69 - docs/news-html.xsl | 106 - docs/news.rng | 72 - docs/news.xml | 5473 -------------------------------------- scripts/reformat-news.py | 102 - tests/virschematest.c | 2 - 22 files changed, 4089 insertions(+), 31216 deletions(-) create mode 100644 NEWS.rst
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano
participants (2)
-
Andrea Bolognani
-
Ján Tomko