> > ## 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? -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#56251): https://edk2.groups.io/g/devel/message/56251 Mute This Topic: https://groups.io/mt/72535271/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-