releasenotes: use re.MULTILINE mode when checking admonitions

Augie Fackler raf at durin42.com
Wed Oct 12 15:19:33 UTC 2022


Thanks, queued. Note that your patch suffered pretty bad whitespace damage in-flight, as though you copied and pasted the patch into a standard mail client. https://www.mercurial-scm.org/wiki/ContributingChanges#Emailing_patches <https://www.mercurial-scm.org/wiki/ContributingChanges#Emailing_patches> is the golden path (specifically the patchbomb extension) to avoid that in the future if you want to use email (which I understand!), otherwise I recommend trying out heptapod.

Sorry for the slow review.

> On Sep 30, 2022, at 11:18, Craig Ozancin <c.ozancin at gmail.com> wrote:
> 
> # HG changeset patch
> # User Craig Ozancin <c.ozancin at gmail.com <mailto: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 ..
> 
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at lists.mercurial-scm.org
> https://lists.mercurial-scm.org/mailman/listinfo/mercurial-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-devel/attachments/20221012/6ecb766a/attachment.html>


More information about the Mercurial-devel mailing list