name: Bug report
description: File a bug report
labels: ["type: bug", "untriaged"]
assignees:
  - pavank1992
  - sgowroji
  - iancha1992
body:
  - type: markdown
    attributes:
      value: >
        **Attention:** if this is a _question_ about how to build / test / query / deploy using
        Bazel, or a _discussion starter_, please start a new thread at Bazel's
        [GitHub Discussions](https://github.com/bazelbuild/bazel/discussions), send it to
        bazel-discuss@googlegroups.com, or discuss on [Bazel Slack](https://slack.bazel.build/)
        instead!
  - type: textarea
    id: desc
    attributes:
      label: >
        Description of the bug:
  - type: dropdown
    id: subteam
    attributes:
      label: >
        Which category does this issue belong to?
      description: >
        Answering this will help us triage this issue faster and more accurately to the
        relevant team(s).
      multiple: true
      options:
        - Android
        - C++/Objective-C Rules
        - CLI
        - Configurability
        - Core
        - Documentation
        - External Dependency
        - Java Rules
        - Loading API
        - Local Execution
        - Performance
        - Python Rules
        - Remote Execution
        - Rules API
        - Server-Side Rules
        - Starlark Integration
        - Starlark Interpreter
  - type: textarea
    id: repro
    attributes:
      label: >
        What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if
        possible.
  - type: input
    id: os
    attributes:
      label: >
        Which operating system are you running Bazel on?
  - type: input
    id: version
    attributes:
      label: >
        What is the output of `bazel info release`?
  - type: textarea
    id: version-follow-up
    attributes:
      label: >
        If `bazel info release` returns `development version` or `(@non-git)`, tell us how you built
        Bazel.
  - type: textarea
    id: source
    attributes:
      label: >
        What's the output of `git remote get-url origin; git rev-parse master; git rev-parse HEAD` ?
      render: text
  - type: textarea
    id: bisect
    attributes:
      label: >
        Is this a regression? If yes, please try to identify the Bazel commit where the bug was
        introduced.
      description: >
        If the problem is specific to the most recent release or the Bazel@HEAD version and it
        doesn't occur in earlier versions, you can use the `bazelisk --bisect=<GOOD>..<BAD>`
        command to identify the specific version or commit where the issue was introduced. For more
        information, visit https://github.com/bazelbuild/bazelisk#--bisect.
  - type: textarea
    id: relevant-info
    attributes:
      label: Have you found anything relevant by searching the web?
      description: >
        Places to look:

         * StackOverflow: http://stackoverflow.com/questions/tagged/bazel
         * GitHub issues: https://github.com/bazelbuild/bazel/issues
         * Email threads on https://groups.google.com/forum/#!forum/bazel-discuss
  - type: textarea
    id: extras
    attributes:
      label: Any other information, logs, or outputs that you want to share?
