releasenotes: use re.MULTILINE mode when checking admonitions

Craig Ozancin c.ozancin at gmail.com
Fri Sep 30 15:18:00 UTC 2022


# HG changeset patch
# User Craig Ozancin <c.ozancin at gmail.com>
# Date 1664550348 21600
#      Fri Sep 30 09:05:48 2022 -0600
# Node ID 5083c4a03bad27c7d3353b491516bed93f359d2a
# Parent  4f36738a869a91275c9a2b2f77219cc663199e13
releasenotes: use re.MULTILINE mode when checking admonitions

Release note admonitions must start at the beginning of a line within
the changeset description:

.. admonitions::

The checkadmonitions function search for and validates admonitions.

Unfortunately, since the ctx.description is multi-line, the regex search
always fails unless the admonition is on the first line.

This changeset adds re.MULTILINE to the re.compile to make the re opbject
multi-line.

diff --git a/hgext/releasenotes.py b/hgext/releasenotes.py
--- a/hgext/releasenotes.py
+++ b/hgext/releasenotes.py
@@ -70,7 +70,7 @@ DEFAULT_SECTIONS = [
     (b'api', _(b'API Changes')),
 ]

-RE_DIRECTIVE = re.compile(br'^\.\. ([a-zA-Z0-9_]+)::\s*([^$]+)?$')
+RE_DIRECTIVE = re.compile(br'^\.\. ([a-zA-Z0-9_]+)::\s*([^$]+)?$',
re.MULTILINE)
 RE_ISSUE = br'\bissue ?[0-9]{4,6}(?![0-9])\b'

 BULLET_SECTION = _(b'Other Changes')
diff --git a/tests/test-releasenotes-formatting.t
b/tests/test-releasenotes-formatting.t
--- a/tests/test-releasenotes-formatting.t
+++ b/tests/test-releasenotes-formatting.t
@@ -387,6 +387,8 @@ Testing output for the --check (-c) flag

   $ touch a
   $ hg -q commit -A -l - << EOF
+  > commit 2
+  >
   > .. asf::
   >
   >    First paragraph under this admonition.
@@ -395,17 +397,19 @@ Testing output for the --check (-c) flag
 Suggest similar admonition in place of the invalid one.

   $ hg releasenotes -r . -c
-  Invalid admonition 'asf' present in changeset 4026fe9e1c20
+  Invalid admonition 'asf' present in changeset 99fa3c800c5e

   $ touch b
   $ hg -q commit -A -l - << EOF
-  > .. fixes::
+  > commit 1
+  >
+  > .. fixed::
   >
   >    First paragraph under this admonition.
   > EOF

   $ hg releasenotes -r . -c
-  Invalid admonition 'fixes' present in changeset 0e7130d2705c
+  Invalid admonition 'fixed' present in changeset 2fbd922a34d6
   (did you mean fix?)

   $ cd ..
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-devel/attachments/20220930/f0fda96a/attachment.html>


More information about the Mercurial-devel mailing list