---
name: Apache NetBeans bug report
description: Problems and issues with Apache NetBeans
labels: ["kind:bug", "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 report the problem!

        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: dropdown
    attributes:
      label: Apache NetBeans version
      description: >
        Which Apache NetBeans version are you using? Only the latest release, latest
        release candidate (if available), and latest daily build are supported for bugs.
        If using an older version, please verify the bug is still valid before reporting.
        Latest releases are always available from https://netbeans.apache.org/download/
      multiple: false
      options:
        - "Apache NetBeans 15"
        # - "Apache NetBeans 16 release candidate"
        - "Apache NetBeans latest daily build"
    validations:
      required: true
  - type: textarea
    attributes:
      label: What happened
      description: Describe what happened, what you expected to happen, and what went wrong.
      placeholder: >
        Please provide the context in which the problem occurred and explain what happened.
        Explain why you think the behaviour is erroneous. It is extremely helpful if you copy&paste
        the fragment of logs showing the exact error messages or wrong behaviour and screenshots for
        UI problems or YouTube link to a video of you demonstrating the problem. You can include files by
        dragging and dropping them here.
    validations:
      required: true
  - type: textarea
    attributes:
      label: How to reproduce
      description: >
        What should we do to reproduce the problem? If you are not able to provide a reproducible case,
        please open a [Discussion](https://github.com/apache/netbeans/discussions) instead.
      placeholder: >
        Please make sure you provide a reproducible step-by-step case of how to reproduce the problem
        as minimally and precisely as possible. Remember that non-reproducible issues may be closed or
        converted into discussions. If we cannot reproduce an issue we cannot fix it!
  - type: dropdown
    attributes:
      label: Did this work correctly in an earlier version?
      description: >
        It's important to know whether bugs have been introduced by recent changes. If this used
        to work, select the last version that worked correctly from the list. Older versions can be 
        specified in the description. 
      multiple: false
      options:
        - "No / Don't know"
        - "Apache NetBeans 14"
        - "Apache NetBeans 13"
        - "Apache NetBeans 12.6"
        - "Apache NetBeans 12.5"
        - "Apache NetBeans 12.4"
        - "Apache NetBeans 12.3 or earlier"
    validations:
      required: true
  - type: input
    attributes:
      label: Operating System
      description: What Operating System are you using?
      placeholder: "Please be as specific as you can - version, distribution, architecture, etc."
    validations:
      required: true
  - type: input
    attributes:
      label: JDK
      description: Which JDK are you using?
      placeholder: "Please be as specific as you can - version, distribution, architecture, etc."
    validations:
      required: true
  - type: dropdown
    attributes:
      label: Apache NetBeans packaging
      description: >
        Please select the Apache NetBeans package you're using. Provide additional details
        below if necessary.
      multiple: false
      options:
        - "Apache NetBeans provided installer"
        - "Apache NetBeans binary zip"
        - "Apache NetBeans Snap Package"
        - "Third-party package"
        - "Own source build"
        - "Apache VSNetBeans for VSCode"
        - "Apache NetBeans platform"
        - "Other"
    validations:
      required: true
  - type: textarea
    attributes:
      label: Anything else
      description: Anything else we need to know?
      placeholder: >
        How often does this problem occur? (Once? Every time? Only when certain conditions are met?)
        Any relevant logs to include? Put them here inside fenced
        ``` ``` blocks or inside a foldable details tag if it's long:
        <details><summary>x.log</summary> lots of stuff </details>
        
        Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
  - 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!"
