> On Aug 10, 2020, at 11:36 AM, Samer El-Haj-Mahmoud 
> <samer.el-haj-mahm...@arm.com> wrote:
> 
> Mike,
> 
> Looks good as a starting point!
> 
> Acked-by: Samer El-Haj-Mahmoud <samer.el-haj-mahm...@arm.com 
> <mailto:samer.el-haj-mahm...@arm.com>>
> 
> 
> I do have a few questions on this sentence:  "Specification text changes are 
> held within the affected source repository, using the GitHub flavor of 
> markdown, in a file (or split across several files) with .md suffix."
> 
> - For TianoCore, is the "affected source repository" this sentence is 
> referring to edk2-staging, or edk2?
> 
> - If the proposed specification and associated code starts in a branch in 
> edk2-staging respiratory, when does it get accepted into edk2/edk2-platforms? 
> Is it when the proposed specification change reaches a certain status (such 
> as "accepted by industry standard forum"), or when the formal specification 
> (with that proposed change) is published by the UEFI Forum ?
> 

Samer,

While in the “code 1st state” there are BZ# prefixes to types and globals. So 
when the code ends up in the specification the “code 1st” branch is going to 
need to get cleaned up for naming, and I assume we could remove the MD files 
before a patch is submitted to the edk2. 

We made extra work for ourselves, but we wanted it to be clear what was work in 
progress. 

Thanks,

Andrew Fish 

> - Any guidance on the specification text md file(s) names (and location) 
> within the repository?
> 
> - If the change includes some graphics, is there any guidance on inclusion of 
> the graphics files in the repository?
> 
> Thanks,
> --Samer
> 
> 
> 
>> -----Original Message-----
>> From: devel@edk2.groups.io <mailto:devel@edk2.groups.io> 
>> <devel@edk2.groups.io <mailto:devel@edk2.groups.io>> On Behalf Of Michael
>> D Kinney via groups.io <http://groups.io/>
>> Sent: Friday, August 7, 2020 9:07 PM
>> To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Kinney, Michael D
>> <michael.d.kin...@intel.com <mailto:michael.d.kin...@intel.com>>; 
>> r...@edk2.groups.io <mailto:r...@edk2.groups.io>
>> Cc: Laszlo Ersek <ler...@redhat.com <mailto:ler...@redhat.com>>; Andrew Fish 
>> <af...@apple.com <mailto:af...@apple.com>>;
>> Leif Lindholm <l...@nuviainc.com <mailto:l...@nuviainc.com>>
>> Subject: Re: [edk2-devel] [Wiki][Patch V2] Add EDK II Code First Process
>> Wiki Page
>> 
>> A version of this Wiki page is also provided here for review:
>> 
>> https://github.com/mdkinney/edk2/wiki/EDK-II-Code-First-Process
>> 
>> Mike
>> 
>>> -----Original Message-----
>>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
>> Michael
>>> D Kinney
>>> Sent: Friday, August 7, 2020 6:05 PM
>>> To: devel@edk2.groups.io
>>> Cc: Laszlo Ersek <ler...@redhat.com>; Andrew Fish <af...@apple.com>;
>>> Leif Lindholm <l...@nuviainc.com>
>>> Subject: [edk2-devel] [Wiki][Patch V2] Add EDK II Code First Process
>>> Wiki Page
>>> 
>>> Based on the following RFC:
>>> 
>>>    https://edk2.groups.io/g/rfc/message/258
>>> 
>>> Additional updates:
>>> * Add examples of all specifications currently maintained by
>>>  the UEFI Forums.
>>> * Added specification change template using a CC-BY-4.0 license.
>>> * Add source code example for an enum value
>>> * Minor grammar updates to change from an RFC proposal to an
>>>  active process.
>>> 
>>> Cc: Laszlo Ersek <ler...@redhat.com>
>>> Cc: Andrew Fish <af...@apple.com>
>>> Cc: Leif Lindholm <l...@nuviainc.com>
>>> Signed-off-by: Michael D Kinney <michael.d.kin...@intel.com>
>>> ---
>>> EDK-II-Code-First-Process.md | 182
>>> +++++++++++++++++++++++++++++++++++
>>> 1 file changed, 182 insertions(+)
>>> create mode 100644 EDK-II-Code-First-Process.md
>>> 
>>> diff --git a/EDK-II-Code-First-Process.md
>>> b/EDK-II-Code-First-Process.md new file mode 100644 index
>>> 0000000..d5c938e
>>> --- /dev/null
>>> +++ b/EDK-II-Code-First-Process.md
>>> @@ -0,0 +1,182 @@
>>> +The EDK II Code First Process is a process by which new features can
>>> +be added to UEFI Forum specifications after first having been
>>> +designed and prototyped in the open.
>>> +
>>> +This process lets changes and the development of new features happen
>>> +in the open, without violating the UEFI forum bylaws which prevent
>>> +publication of code for in-draft features/changes.
>>> +
>>> +The process does not in fact change the UEFI bylaws - the change is
>>> +that the development (of both specification and code) happens in the
>>> +open. The resulting specification update is then submitted to the
>>> +appropriate working group as an Engineering Change Request (ECR), and
>>> +voted on. For the UEFI Forum, this is a change in workflow, not a change
>> in process.
>>> +
>>> +ECRs are tracked in a UEFI Forum Mantis instance, access restricted
>>> +to UEFI Forum Members. TianoCore enables this new process by
>>> +providing areas on [TianoCore
>>> +Bugzilla](https://bugzilla.tianocore.org) to track both specification
>>> +updates and reference implementations and new repositories under
>> [TianoCore GitHub](https://github.com/tianocore) dedicated to hold "code
>> first".
>>> +
>>> +# TianoCore Bugzilla
>>> +
>>> +[TianoCore Bugzilla](bugzilla.tianocore.org) has a product categories
>>> +for
>>> +  * ACPI Specification
>>> +  * UEFI Shell Specification
>>> +  * UEFI Platform Initialization Distribution Packaging Specification
>>> +  * UEFI Platform Initialization Specification Specification
>>> +  * UEFI Specification
>>> +
>>> +Each product category has separate components for
>>> +  * Specification
>>> +  * Reference implementation
>>> +
>>> +# TianoCore GitHub
>>> +
>>> +Reference implementations targeting the EDK II open source project
>>> +are held in branches in the
>>> +[edk2-staging](https://github.com/tianocore/edk2-staging)
>>> +repository.
>>> +
>>> +Additional repositories for implementing reference features in
>>> +additional open source projects can be added in the future, as required.
>>> +
>>> +Specification text changes are held within the affected source
>>> +repository, using the GitHub flavor of markdown, in a file (or split
>>> +across several files) with .md suffix.  Multiple files are required
>>> +if changes impact multiple specifications or if the specification is
>>> +large and is easier to maintain if the changes are split across multiple
>> files.
>>> +
>>> +* NOTE: This one may break down where we have a specification change
>>> +affecting
>>> +  multiple specifications, but at that point we can track it with
>>> +multiple
>>> +  TianoCore Bugzilla entries.
>>> +
>>> +## Specification Text Template
>>> +
>>> +The following is a template of specification text changes using the
>>> +GitHub flavor of markdown.  The title and complete description of the
>>> +specification changes must be provided in the specification text
>>> +along with the name and version of the specification the change
>>> +applies.  The `Status` of the specification change always starts in
>>> +the `Draft` state and is updated based on feedback from the industry
>>> +standard forums.  The contents of the specification text are required
>>> +to use the [Creative Commons Attribution 4.0
>>> +International](https://spdx.org/licenses/CC-BY-4.0.html)
>>> +license using a `SPDX-License-Identifier` statement.
>>> +
>>> +```
>>> +# Title: [Must be Filled In]
>>> +
>>> +# Status: [Status]
>>> +
>>> +[Status] must be one of the following:
>>> +* Draft
>>> +* Submitted to industry standard forum
>>> +* Accepted by industry standard forum
>>> +* Accepted by industry standard forum with modifications
>>> +* Rejected by industry standard forum
>>> +
>>> +# Document: [Title and Version]
>>> +
>>> +Here are some examples of [Title and Version]:
>>> +* UEFI Specification Version 2.8
>>> +* ACPI Specification Version 6.3
>>> +* UEFI Shell Specification Version 2.2
>>> +* UEFI Platform Initialization Specification Version 1.7
>>> +* UEFI Platform Initialization Distribution Packaging Specification
>>> +Version 1.1
>>> +
>>> +# License
>>> +
>>> +SPDX-License-Identifier: CC-BY-4.0
>>> +
>>> +# Submitter: [TianoCore Community](https://www.tianocore.org)
>>> +
>>> +# Summary of the change
>>> +
>>> +Required Section
>>> +
>>> +# Benefits of the change
>>> +
>>> +Required Section
>>> +
>>> +# Impact of the change
>>> +
>>> +Required Section
>>> +
>>> +# Detailed description of the change [normative updates]
>>> +
>>> +Required Section
>>> +
>>> +# Special Instructions
>>> +
>>> +Optional Section
>>> +```
>>> +
>>> +# Intended workflow
>>> +
>>> +The entity initiating a specification change enters a Bugzilla in the
>>> +appropriate area of [TianoCore Bugzilla](bugzilla.tianocore.org).
>>> +This entry contains the outline of the change, and the full initial draft
>> text is attached.
>>> +
>>> +If multiple specification updates are interdependent, especially if
>>> +between different specifications, then multiple Bugzilla entries should be
>> created.
>>> +These Bugzilla entries *must* be linked together with dependencies.
>>> +
>>> +After the Bugzillas have been created, new branches should be created
>>> +in the relevant repositories for each Bugzilla.  The branch names
>>> +must use the following format where #### is the Bugzilla ID and
>>> +<Brief Description> is an optional description of the change.
>>> +
>>> +    BZ####-<Brief Description>
>>> +
>>> +If multiple Bugzilla entries must coexist on a single branch, one of
>>> +them is designated the _top-level_, with dependencies properly
>>> +tracked. That Bugzilla is be the one naming the branch.
>>> +
>>> +# 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 must be prefixed with
>> the relevant BZ#### identifiers.
>>> +
>>> +* [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.
>>> +
>>> +## File names
>>> +
>>> +New public header files require 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 code
>> base.
>>> +Examples:
>>> +
>>> +| Released in spec | Draft version in tree | Comment |
>>> +| ---              | ---                   | ---     |
>>> +| `FunctionName`   | `Bz1234FunctionName`  |         |
>>> +| `HEADER_MACRO`   | `BZ1234_HEADER_MACRO` |         |
>>> +
>>> +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.
>>> +
>>> +| Released in spec      | Draft version in tree | Comment               |
>>> +| ---                   | ---                   | ---                   |
>>> +| `typedef SOME_STRUCT` | `BZ1234_SOME_STRUCT`  | Typedef only [2]
>> |
>>> +| `StructField`         | `Bz1234StructField`   | In existing struct[3] |
>>> +| `typedef SOME_ENUM`   | `BZ1234_SOME_ENUM`    | Typedef only [2]
>> |
>>> +| `EnumValue`           | `BzEnumValue`         | In existing enum[3]   |
>>> +
>>> +* [2] If the struct or enum definition is separate from the typedef in the
>> public
>>> +      header, the definition does not need the prefix.
>>> +* [3] Individual fields in newly added struct or enum do not need prefix,
>> the
>>> +      struct or enum already carried the prefix.
>>> +
>>> +Variable prefixes indicating global scope ('g' or 'm') go before the BZ
>> prefix.
>>> +
>>> +| Released in spec | Draft version in tree | Comment |
>>> +| ---              | ---                   | ---     |
>>> +| `gSomeGuid`      | `gBz1234SomeGuid`     |         |
>>> +
>>> +Local identifiers, including module-global ones (m-prefixed) do not
>>> +require a BZ prefix.
>>> --
>>> 2.21.0.windows.1
>>> 
>>> 
>>> 
>> 
>> 
>> 
> 
> IMPORTANT NOTICE: The contents of this email and any attachments are 
> confidential and may also be privileged. If you are not the intended 
> recipient, please notify the sender immediately and do not disclose the 
> contents to any other person, use it for any purpose, or store or copy the 
> information in any medium. Thank you.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63917): https://edk2.groups.io/g/devel/message/63917
Mute This Topic: https://groups.io/mt/76061237/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to