public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ni, Ray" <ray.ni@intel.com>
To: "rfc@edk2.groups.io" <rfc@edk2.groups.io>,
	"leif@nuviainc.com" <leif@nuviainc.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Felix Polyudov <Felixp@ami.com>,
	"Doran, Mark" <mark.doran@intel.com>,
	Andrew Fish <afish@apple.com>, Laszlo Ersek <lersek@redhat.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [edk2-rfc] [RFCv2] code-first process for UEFI-forum specifications
Date: Wed, 25 Mar 2020 05:14:59 +0000	[thread overview]
Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C4B2676@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <20200323190548.GF22097@bivouac.eciton.net>

> 
> ## Github
> New repositories will be added for holding the text changes and the source code.
> 
> Specification text changes will be held within the affected source repository,
> in the Github flavour of markdown, in a file (or split across several files)
> with .md suffix.

What's the case when multiple .MD files are needed?

> (This one may break down where we have a specification change affecting multiple
> specifications, but at that point we can track it with multiple BZ entries)

> 
> 
> ## Source code
> In order to ensure draft code does not accidentally leak into production use,
> and to signify when the changeover from draft to final happens, *all* new or
> modified[1] identifiers need to be prefixed with the relevant BZ####.
> 
> [1] Modified in a non-backwards-compatible way. If, for example, a statically
>     sized array is grown - this does not need to be prefixed. But a tag in a
> 	comment would be *highly* recommended.

If a protocol is enhanced to provide more interfaces with increased revision number,
would you like the protocol name to be prefixed with BZ####?
Or just the new interfaces added to the protocol are prefixed the BZ####?
I think just prefixing the new interfaces can meet the purpose.

But the protocol definition is changed, it also needs to be prefixed according to this flow.
Can you clarify a bit more?

> 
> ### File names
> New public header files need the prefix. I.e. `Bz1234MyNewProtocol.h`
> Private header files do not need the prefix.
> 
> ### Contents
> 
> The tagging must follow the coding style used by each affected codebase.
> Examples:
> 
> | Released in spec      | Draft version in tree       | Comment                |
> | ---                   | ---                         | ---                    |
> | `FunctionName`        | `Bz1234FunctionName`        |                        |
> | `HEADER_MACRO`        | `BZ1234_HEADER_MACRO`       |                        |

If FunctionName or HEADER_MACRO is defined in non-public header files, I don't
think they require the prefix. Do you agree?
 
> For data structures or enums, any new or non-backwards-compatible structs or
> fields require a prefix. As above, growing an existing array in an existing
> struct requires no prefix.
> 
> | `typedef SOME_STRUCT` | `BZ1234_SOME_STRUCT`        | Typedef only [2]       |
> | `StructField`         | `Bz1234StructField`         | In existing struct[3]  |
> | `typedef SOME_ENUM`   | `BZ1234_SOME_ENUM`          | Typedef only [2]       |
> 
> [2] If the struct or enum definition is separate from the typedef in the public
>     header, the definition does not need the prefix.

What does "separate" mean?
Does it mean "struct or enum in the public header BzXXX.h don't need the prefix"?
If yes, then I think macros defined in BzXXX.h also don't need the prefix.

> [3] Individual fields in newly added typedefd struct do not need prefix, the
>     struct already carried the prefix.
> 
> Variable prefixes indicating global scope ('g' or 'm') go before the BZ prefix.
> 
> | `gSomeGuid`           | `gBz1234SomeGuid`           |                        |
> 
> Local identifiers, including module-global ones (m-prefixed) do not require a
> BZ prefix.

I think only the names (struct type name, enum type name, interface name, protocol/ppi name)
defined in public header files need the BZ prefix when the public header doesn't have prefix.
Right?


  reply	other threads:[~2020-03-25  5:15 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-23 19:05 [RFCv2] code-first process for UEFI-forum specifications Leif Lindholm
2020-03-25  5:14 ` Ni, Ray [this message]
2020-05-12 15:29   ` [edk2-rfc] " Leif Lindholm
2020-03-25 15:20 ` [edk2-devel] " Laszlo Ersek
2020-05-05 15:21 ` [edk2-rfc] " Samer El-Haj-Mahmoud
  -- strict thread matches above, loose matches on Subject: below --
2020-05-14 21:10 Samer El-Haj-Mahmoud
     [not found] <160F0156FEDC6091.6323@groups.io>
2020-05-20 10:19 ` Samer El-Haj-Mahmoud

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-list 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=734D49CCEBEEF84792F5B80ED585239D5C4B2676@SHSMSX104.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox