# TianoCore edk2 GitHub Code First Template
#
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#

name: </> Code First
description: Code first tracking issue
title: "[Code First]: <title>"
labels: ["type:code-first"]

body:
  - type: markdown
    attributes:
      value: |
        👋 Only use this issue form for changes following the "code first" process described in
           [EDK II Code First Process](https://www.tianocore.org/tianocore-wiki.github.io/development/contribution-guides/edk_ii_code_first_process.html).

        **Read that document before filing this issue.**

  - type: textarea
    id: overview
    attributes:
      label: Code First Item Overview
      description: Provide a brief overview of the overall code first change.
    validations:
      required: true

  - type: dropdown
    id: specs_impacted
    attributes:
      label: What specification(s) are directly related?
      description: |
        *Select all that apply*
      multiple: true
      options:
        - ACPI
        - Platform Initialization (PI)
        - UEFI
        - UEFI PI Distribution Packaging
        - UEFI Shell
    validations:
      required: true

  - type: markdown
    attributes:
      value: |
        **Specification Draft Template**

        For the template below, 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.

        - "Required" sections must be completed.
        - Include a modified template for each specification impacted (if more than one).
        - Include a copy of the completed template in a markdown file in the code changes.
          - If more than one template is completed, place each in a separate markdown file.

        ---

        Template text for reference (using the GitHub flavor of markdown):

        ```markdown
        # 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
        ```

  - type: textarea
    id: anything_else
    attributes:
      label: Anything else?
      description: |
        Links? References? Anything that will give us more context about the code first change.

        Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
    validations:
      required: false
