---
name: Apache NetBeans feature request
description: Suggest an idea to improve Apache NetBeans
labels: ["kind:feature", "needs:triage"]
body:
  - type: markdown
    attributes:
      # yamllint disable rule:line-length
      value: "
        <img src='https://raw.githubusercontent.com/apache/netbeans/master/nb/ide.branding/release/netbeans.png' align='left' width='64' height='64'>
        Thank you for finding the time to propose a new feature!

        We really appreciate community efforts to improve Apache NetBeans.

        Note, that you do not need to create an issue if you have a change ready to submit!
        
        You can open a [Pull Request](https://github.com/apache/netbeans/pulls) immediately instead.
        <br clear='left'/>"
      # yamllint enable rule:line-length
  - type: textarea
    attributes:
      label: Description
      description: A short description of your feature
    validations:
      required: true
  - type: textarea
    attributes:
      label: Use case/motivation
      description: What do you want to happen?
      placeholder: >
          Rather than telling us how you might implement this feature, try to take a
          step back and describe what you are trying to achieve.
  - type: textarea
    attributes:
      label: Related issues
      description: Is there currently another issue associated with this?
  - type: dropdown
    attributes:
      label: Are you willing to submit a pull request?
      description: >
        This is absolutely not required, but we are happy to guide you in the contribution process,
        especially if you already have a good understanding of how to implement the fix. <br>
        Apache NetBeans is a community-managed project and we love to bring new contributors in.
      options:
        - "Yes"
        - "No"
    validations:
        required: true
  - type: dropdown
    attributes:
      label: Code of Conduct
      description: > 
         The Code of Conduct helps create a safe space for everyone.
         I agree to follow the Apache Software Foundation's
         [Code of Conduct](https://www.apache.org/foundation/policies/conduct.html)
      options:
        - "Yes"
    validations:
        required: true
  - type: markdown
    attributes:
      value: "Thank you for completing our form!"
