name: Component Request
description: Suggest a component to include in this project
title: "New Component: <component-name>"
labels: ['enhancement']
assignees: []
body:
  - type: textarea
    id: problem_statement
    attributes:
      label: Problem Statement
      description: A clear and concise description of what the problem is.
      placeholder: Describe the core problem this new component would solve.
    validations:
      required: true

  - type: textarea
    id: why_not_other_repo
    attributes:
      label: Why can this component not be hosted in a different repository?
      description: >-
        Describe attempts to host it in a different repository (preferably native to the component).
      placeholder: Explain why this must live here instead of somewhere else.
    validations:
      required: true

  - type: textarea
    id: proposed_solution
    attributes:
      label: Proposed Solution
      description: A clear and concise description of what you want to happen.
      placeholder: Detail your proposed implementation or approach.
    validations:
      required: true

  - type: textarea
    id: alternatives
    attributes:
      label: Alternatives
      description: List any alternative solutions or features you have considered.
      placeholder: Describe other possible approaches or why they were rejected.
    validations:
      required: false

  - type: textarea
    id: prior_art
    attributes:
      label: Prior Art
      description: Similar or existing solutions from other projects that can inform the proposal.
      placeholder: Include links or references to comparable implementations.
    validations:
      required: false

  - type: textarea
    id: additional_context
    attributes:
      label: Additional Context
      description: Add any other information, background, or resources related to the request.
      placeholder: Include any relevant context, screenshots, or references.
    validations:
      required: false

  - type: textarea
    id: code_owners
    attributes:
      label: Code Owners
      description: >-
        Name at least one person matching the Code Owners requirements
        (this can be you) who will maintain the component.
      placeholder: Provide GitHub handles of maintainers.
    validations:
      required: true

  - type: checkboxes
    id: tasks
    attributes:
      label: Tasks
      description: Checklist for completion before merging the new component.
      options:
        - label: Comprehensive unit tests
          required: true
        - label: End-to-end integration tests
          required: true
        - label: Tests all passing
          required: true
        - label: Functionality verified
          required: true
        - label: Added to the [OpenTelemetry Registry](https://opentelemetry.io/registry/)
          required: true
        - label: README included for the module describing high-level purpose
          required: true
        - label: Complete documentation of all public API including package documentation
          required: true
        - label: Added [Examples](https://pkg.go.dev/testing#hdr-Examples)
          required: true
    validations:
      required: true

  - type: markdown
    attributes:
      value: >-
        <sub>**Tip**:
        [React](https://github.blog/news-insights/product-news/add-reactions-to-pull-requests-issues-and-comments/)
        with 👍 to help prioritize this issue. Please use comments to provide
        useful context, avoiding `+1` or `me too`, to help us triage it. Learn
        more
        [here](https://opentelemetry.io/community/end-user/issue-participation/).</sub>
