Skip to content

Implement GitHub Templates with YAML Issue Forms #42

@DanyHenriquez

Description

@DanyHenriquez

Overview

Add standardized templates for GitHub contributions using YAML-based issue forms, PR templates, and other contribution workflows.

Description

By providing templates, we can make sure consistent formatting and gather information.

Benefits

  • Improved Consistency: Standardized format for all contributions
  • Better over all Experience: Clear guidance on what information to provide
  • Reduced Workload: Less time spent requesting missing information
  • Project Organization: Easier to triage, categorize, and prioritize issues and PRs

Implementation Details

1. Issue Forms (YAML-based)

Create multiple issue forms using GitHub's YAML schema for a more structured approach:

  • Bug Report Form

    # Example fields (to be customized):
    - type: markdown
      attributes:
        value: "## Bug Report"
    - type: input
      id: version
      attributes:
        label: Version
        description: What version are you using?
      validations:
        required: true
    - type: dropdown
      id: type
      attributes:
        label: Type
        options:
          - PS5 NOR Modifier
          - UART-CL
    - type: textarea
      id: reproduction
      attributes:
        label: Steps to Reproduce
        description: How can we reproduce this issue?
      validations:
        required: true
    - type: textarea
      id: expected
      attributes:
        label: Expected Behavior
    - type: textarea
      id: actual
      attributes:
        label: Actual Behavior
    - type: input
      id: logs
      attributes:
        label: Relevant Logs/Screenshots
  • Feature Request Form

    # Example fields (to be customized):
    - type: markdown
      attributes:
        value: "## Feature Request"
    - type: textarea
      id: problem
      attributes:
        label: Problem
        description: What problem are you trying to solve?
      validations:
        required: true
    - type: textarea
      id: solution
      attributes:
        label: Proposed Solution
      validations:
        required: true
    - type: textarea
      id: alternatives
      attributes:
        label: Alternatives Considered
    - type: checkboxes
      id: terms
      attributes:
        label: Additional Checks
        options:
          - label: I've searched existing issues to avoid duplicates
            required: true
          - label: I'm willing to contribute to this feature
  • Documentation Improvement Form

    # Example fields (to be customized):
    - type: markdown
      attributes:
        value: "## Documentation Improvement"
    - type: input
      id: doc_link
      attributes:
        label: Documentation Link
        description: Which documentation needs improvement?
      validations:
        required: true
    - type: textarea
      id: missing_info
      attributes:
        label: Missing/Incorrect Information
      validations:
        required: true
    - type: textarea
      id: suggested_changes
      attributes:
        label: Suggested Changes

2. Pull Request Template

Create a PR template:

  • Description of changes
  • Related issue(s)
  • Type of change (bug, feature, breaking change, refactor, CI)
  • Checklist for the author (tests added, documentation updated, etc.)
  • Screenshots (if needed)

3. CONTRIBUTING.md

Create a contribution guide:

  • Coding standards
  • Commit message format (following conventional commits)
  • Branch naming conventions
  • Review process
  • Release process

Files to Add

  • .github/ISSUE_TEMPLATE/config.yml (for issue form configuration)
  • .github/ISSUE_TEMPLATE/*.yml (YAML issue forms)
  • .github/PULL_REQUEST_TEMPLATE.md
  • CONTRIBUTING.md

Questions

  • Should we have legacy markdown templates alongside YAML issue forms for backward compatibility?
  • Do we want to implement issue and PR labeling automation?
  • Should we add issue template configuration to control which templates are shown?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions