All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: michael.roth@amd.com, jsnow@redhat.com, marcandre.lureau@redhat.com
Subject: Re: [PATCH 10/28] qapi: Rework name checking in preparation of stricter checking
Date: Tue, 23 Mar 2021 09:20:49 -0500	[thread overview]
Message-ID: <ed036808-1666-8efd-14d4-dfe0863dfa4a@redhat.com> (raw)
In-Reply-To: <20210323094025.3569441-11-armbru@redhat.com>

On 3/23/21 4:40 AM, Markus Armbruster wrote:
> Naming rules differ for the various kinds of names.  To prepare
> enforcing them, define functions to check them: check_name_upper(),
> check_name_lower(), and check_name_camel().  For now, these merely
> wrap around check_name_str(), but that will change shortly.  Replace
> the other uses of check_name_str() by appropriate uses of the
> wrappers.  No change in behavior just yet.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  scripts/qapi/expr.py | 51 +++++++++++++++++++++++++++++++-------------
>  1 file changed, 36 insertions(+), 15 deletions(-)
> 

> +++ b/scripts/qapi/expr.py
> @@ -21,11 +21,12 @@
>  from .error import QAPISemError
>  
>  
> -# Names must be letters, numbers, -, and _.  They must start with letter,
> -# except for downstream extensions which must start with __RFQDN_.
> -# Dots are only valid in the downstream extension prefix.
> -valid_name = re.compile(r'^(__[a-zA-Z0-9.-]+_)?'
> -                        '[a-zA-Z][a-zA-Z0-9_-]*$')

I'm assuming python concatenates r'' with '' in the obvious manner...

> +# Names consist of letters, digits, -, and _, starting with a letter.
> +# An experimental name is prefixed with x-.  A name of a downstream
> +# extension is prefixed with __RFQDN_.  The latter prefix goes first.
> +valid_name = re.compile(r'(__[a-z0-9.-]+_)?'
> +                        r'(x-)?'
> +                        r'([a-z][a-z0-9_-]*)$', re.IGNORECASE)

...but like your explicit use of r'' r''.

Splitting out special handling of r'(x-)?' does not change behavior, but
is not otherwise mentioned in your commit message.  I suspect you did it
to make it easier to permit x-EVENT_NAME in later patches where upper is
handled differently from lower or camel, so I won't withhold R-b, but it
may be worth a tweak to the commit message.


>  
>  def check_defn_name_str(name, info, meta):
> -    check_name_str(name, info, meta, permit_upper=True)
> +    if meta == 'event':
> +        check_name_upper(name, info, meta)
> +    elif meta == 'command':
> +        check_name_lower(name, info, meta, permit_upper=True)

Why do commands need to permit upper?  I guess just downstream FQDN
extensions?

Otherwise the patch makes sense.

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org



  reply	other threads:[~2021-03-23 14:22 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-23  9:39 [PATCH 00/28] qapi: Enforce naming rules Markus Armbruster
2021-03-23  9:39 ` [PATCH 01/28] qapi/pragma: Tidy up after removal of deprecated commands Markus Armbruster
2021-03-23 12:50   ` John Snow
2021-03-23  9:39 ` [PATCH 02/28] tests/qapi-schema: Drop redundant flat-union-inline test Markus Armbruster
2021-03-23 12:54   ` John Snow
2021-03-23  9:40 ` [PATCH 03/28] tests/qapi-schema: Rework comments on longhand member definitions Markus Armbruster
2021-03-23 13:00   ` John Snow
2021-03-23 13:58     ` Eric Blake
2021-03-23 14:25       ` John Snow
2021-03-23 13:59   ` Eric Blake
2021-03-23 14:27   ` John Snow
2021-03-23  9:40 ` [PATCH 04/28] tests/qapi-schema: Belatedly update comment on alternate clash Markus Armbruster
2021-03-23 13:12   ` John Snow
2021-03-23  9:40 ` [PATCH 05/28] tests/qapi-schema: Drop TODO comment on simple unions Markus Armbruster
2021-03-23 13:16   ` John Snow
2021-03-23  9:40 ` [PATCH 06/28] tests/qapi-schema: Tweak to demonstrate buggy member name check Markus Armbruster
2021-03-23 13:20   ` John Snow
2021-03-23 15:44     ` Markus Armbruster
2021-03-23 17:09       ` John Snow
2021-03-23 20:42         ` Markus Armbruster
2021-03-23  9:40 ` [PATCH 07/28] qapi: Fix to reject optional members with reserved names Markus Armbruster
2021-03-23 13:27   ` John Snow
2021-03-23 15:50     ` Markus Armbruster
2021-03-23  9:40 ` [PATCH 08/28] qapi: Support flat unions tag values with leading digit Markus Armbruster
2021-03-23 14:11   ` Eric Blake
2021-03-23 14:49   ` John Snow
2021-03-23 16:18     ` Markus Armbruster
2021-03-23 21:07       ` Markus Armbruster
2021-03-23  9:40 ` [PATCH 09/28] qapi: Lift enum-specific code out of check_name_str() Markus Armbruster
2021-03-23 14:13   ` Eric Blake
2021-03-23 21:44   ` John Snow
2021-03-23 22:11   ` John Snow
2021-03-24  5:55     ` Markus Armbruster
2021-03-23  9:40 ` [PATCH 10/28] qapi: Rework name checking in preparation of stricter checking Markus Armbruster
2021-03-23 14:20   ` Eric Blake [this message]
2021-03-23 14:30     ` John Snow
2021-03-23 14:40       ` Eric Blake
2021-03-23 16:25     ` Markus Armbruster
2021-03-23 21:14       ` Markus Armbruster
2021-03-23 22:15   ` John Snow
2021-03-24  5:57     ` Markus Armbruster
2021-03-24 20:11       ` John Snow
2021-03-25  6:18         ` Markus Armbruster
2021-03-25 17:48           ` John Snow
2021-03-26  5:25             ` Markus Armbruster
2021-03-23  9:40 ` [PATCH 11/28] qapi: Move uppercase rejection to check_name_lower() Markus Armbruster
2021-03-23 14:29   ` Eric Blake
2021-03-23 22:21   ` John Snow
2021-03-23  9:40 ` [PATCH 12/28] qapi: Consistently permit any case in downstream prefixes Markus Armbruster
2021-03-23 14:30   ` Eric Blake
2021-03-23 22:26   ` John Snow
2021-03-23  9:40 ` [PATCH 13/28] qapi: Enforce event naming rules Markus Armbruster
2021-03-23 14:32   ` Eric Blake
2021-03-23 22:31   ` John Snow
2021-03-24  6:22     ` Markus Armbruster
2021-03-24 20:07       ` John Snow
2021-03-25  6:22         ` Markus Armbruster
2021-03-25 17:50           ` John Snow
2021-03-23  9:40 ` [PATCH 14/28] qapi: Enforce type " Markus Armbruster
2021-03-23 14:50   ` Eric Blake
2021-03-23 16:27     ` Markus Armbruster
2021-03-23  9:40 ` [PATCH 15/28] tests/qapi-schema: Rename redefined-builtin to redefined-predefined Markus Armbruster
2021-03-23 14:55   ` Eric Blake
2021-03-23  9:40 ` [PATCH 16/28] qapi: Factor out QAPISchemaParser._check_pragma_list_of_str() Markus Armbruster
2021-03-23 15:01   ` Eric Blake
2021-03-23  9:40 ` [PATCH 17/28] tests/qapi-schema: Rename pragma-*-crap to pragma-value-not-* Markus Armbruster
2021-03-23 15:02   ` Eric Blake
2021-03-23  9:40 ` [PATCH 18/28] tests/qapi-schema: Rename returns-whitelist to returns-bad-type Markus Armbruster
2021-03-23 15:06   ` Eric Blake
2021-03-23  9:40 ` [PATCH 19/28] qapi: Rename pragma *-whitelist to *-exceptions Markus Armbruster
2021-03-23 15:09   ` Eric Blake
2021-03-23 16:35     ` Markus Armbruster
2021-03-23  9:40 ` [PATCH 20/28] qapi/pragma: Streamline comments on member-name-exceptions Markus Armbruster
2021-03-23 15:10   ` Eric Blake
2021-03-23  9:40 ` [PATCH 21/28] tests-qmp-cmds: Drop unused and incorrect qmp_TestIfCmd() Markus Armbruster
2021-03-23 15:11   ` Eric Blake
2021-03-23  9:40 ` [PATCH 22/28] qapi: Prepare for rejecting underscore in command and member names Markus Armbruster
2021-03-23 15:15   ` Eric Blake
2021-03-23  9:40 ` [PATCH 23/28] qapi: Enforce feature naming rules Markus Armbruster
2021-03-23 15:16   ` Eric Blake
2021-03-23  9:40 ` [PATCH 24/28] qapi: Enforce command " Markus Armbruster
2021-03-23 15:23   ` Eric Blake
2021-03-23 21:19     ` Markus Armbruster
2021-03-23  9:40 ` [PATCH 25/28] tests/qapi-schema: Switch member name clash test to struct Markus Armbruster
2021-03-23 15:42   ` Eric Blake
2021-03-23  9:40 ` [PATCH 26/28] qapi: Enforce struct member naming rules Markus Armbruster
2021-03-23 15:46   ` Eric Blake
2021-03-23 21:23     ` Markus Armbruster
2021-03-23  9:40 ` [PATCH 27/28] qapi: Enforce enum " Markus Armbruster
2021-03-23 15:47   ` Eric Blake
2021-03-23  9:40 ` [PATCH 28/28] qapi: Enforce union and alternate branch " Markus Armbruster
2021-03-23 16:05   ` Eric Blake
2021-03-23 21:24     ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ed036808-1666-8efd-14d4-dfe0863dfa4a@redhat.com \
    --to=eblake@redhat.com \
    --cc=armbru@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=michael.roth@amd.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.