# proto-file: warn/docs/docs.proto
# proto-message: Warnings
# After modifying this file, run `bazel build //warn/docs:warnings_docs && cp bazel-bin/warn/docs/WARNINGS.md .`

warnings: {
  name: "allowed-symbol-load-locations"
  header: "Symbol must be loaded from a specific location"
  description:
      "Warns when a symbol is loaded from a location other than the expected ones.\n"
          "Expected locations are specified in the tables file:\n\n"
          "```json\n"
          "{\n"
          "  \"AllowedSymbolLoadLocations\": {\n"
          "    \"genrule\": [\n"
          "      \"//tools/bazel:genrule.bzl\"\n"
          "    ]\n"
          "  }\n"
          "}\n"
          "```"
}

warnings: {
  name: "attr-cfg"
  header: "`cfg = \"data\"` for attr definitions has no effect"
  description:
    "The [Configuration](https://docs.bazel.build/versions/main/skylark/rules.html#configurations)\n"
    "`cfg = \"data\"` is deprecated and has no effect. Consider removing it.\n"
    "The [Configuration](https://docs.bazel.build/versions/main/skylark/rules.html#configurations)\n"
    "`cfg = \"host\"` is deprecated. Consider replacing it with `cfg = \"exec\"`."
  bazel_flag: "--incompatible_disallow_data_transition"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/6153"
  autofix: true
}

warnings: {
  name: "attr-license"
  header: "`attr.license()` is deprecated and shouldn't be used"
  description: "The `attr.license()` method is almost never used and being deprecated."
  bazel_flag: "--incompatible_no_attr_license"
  autofix: false
}

warnings: {
  name: "attr-licenses"
  header: "Do not use `licenses` as an attribute name."
  description: "Using licenses as an attribute name may cause unexpected behavior."
  autofix: false
}

warnings: {
  name: "attr-applicable_licenses"
  header: "Do not use `applicable_licenses` as an attribute name."
  description: "Using `applicable_licenses` as an attribute name may cause unexpected behavior. Its use may be prohibited in future Bazel releases."
  autofix: false
}

warnings: {
  name: "attr-package-metadata"
  header: "Do not use `package_metadata` as an attribute name."
  description: "Using `package_metadata` as an attribute name may cause unexpected behavior. Its use may be prohibited in future Bazel releases."
  autofix: false
}

warnings: {
  name: "attr-non-empty"
  header: "`non_empty` attribute for attr definitions is deprecated"
  description:
    "The `non_empty` [attribute](https://docs.bazel.build/versions/main/skylark/lib/attr.html)\n"
    "for attr definitions is deprecated, please use `allow_empty` with an opposite value instead."
  bazel_flag: "--incompatible_disable_deprecated_attr_params"
  autofix: true
}

warnings: {
  name: "attr-output-default"
  header: "The `default` parameter for `attr.output()`is deprecated"
  description:
    "The `default` parameter of `attr.output()` is bug-prone, as two targets of the same rule would be\n"
    "unable to exist in the same package under default behavior. Use Starlark macros to specify defaults\n"
    "for these attributes instead."
  bazel_flag: "--incompatible_no_output_attr_default"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/7950"
  autofix: false
}

warnings: {
  name: "attr-single-file"
  header: "`single_file` is deprecated"
  description:
    "The `single_file` [attribute](https://docs.bazel.build/versions/main/skylark/lib/attr.html)\n"
    "is deprecated, please use `allow_single_file` instead."
  bazel_flag: "--incompatible_disable_deprecated_attr_params"
  autofix: true
}

warnings: {
  name: "build-args-kwargs"
  header: "`*args` and `**kwargs` are not allowed in BUILD files"
  description:
    "Having `*args` or `**kwargs` makes BUILD files hard to read and manipulate. The list of\n"
    "arguments should be explicit."
  bazel_flag: "--incompatible_no_kwargs_in_build_files"
  autofix: false
}
warnings: {
  name: "bzl-visibility"
  header: "Module shouldn't be used directly"
  description:
    "If a directory `foo` contains a subdirectory `internal` or `private`, only files located under `foo`\n"
    "can access it.\n\n"
    "For example, `dir/rules_mockascript/private/foo.bzl` can be loaded from\n"
    "`dir/rules_mockascript/private/bar.bzl` or `dir/rules_mockascript/sub/public.bzl`,\n"
    "but not from `dir/other_rule/file.bzl`."
  autofix: false
}

warnings: {
  name: "canonical-repository"
  header: "String contains `@@` which indicates a canonical repository name reference that should be avoided"
  description:
    "Using canonical repository names (with `@@` prefix) makes BUILD files fragile\n"
    "to repository mapping changes and external dependency updates. Canonical names\n"
    "are internal implementation details that can change between Bazel versions\n"
    "or when external dependencies are updated.\n\n"
    "Instead of using canonical names like:\n\n"
    "```python\n"
    "load(\"@@rules_go//go:def.bzl\", \"go_library\")\n"
    "deps = [\"@@protobuf~5.27.0//src:message\"]\n"
    "```\n\n"
    "Use apparent names with single `@`:\n\n"
    "```python\n"
    "load(\"@rules_go//go:def.bzl\", \"go_library\")\n"
    "deps = [\"@protobuf//src:message\"]\n"
    "```\n\n"
    "This makes your BUILD files more maintainable and resilient to changes."
  autofix: false
}

warnings: {
  name: "confusing-name"
  header: "Never use `l`, `I`, or `O` as names"
  description: "The names `l`, `I`, or `O` can be easily confused with `I`, `l`, or `0` correspondingly."
  autofix: false
}

warnings: {
  name: "constant-glob"
  header: "Glob pattern has no wildcard ('*')"
  description:
    "[Glob function](https://docs.bazel.build/versions/main/be/functions.html#glob)\n"
    "is used to get a list of files from the depot. The patterns (the first argument)\n"
    "typically include a wildcard (* character). A pattern without a wildcard is\n"
    "often useless and sometimes harmful.\n\n"
    "To fix the warning, move the string out of the glob:\n\n"
    "```diff\n"
    "- glob([\"*.cc\", \"test.cpp\"])\n"
    "+ glob([\"*.cc\"]) + [\"test.cpp\"]\n"
    "```\n\n"
    "**There’s one important difference**: before the change, Bazel would silently\n"
    "ignore test.cpp if file is missing; after the change, Bazel will throw an error\n"
    "if file is missing.\n\n"
    "If `test.cpp` doesn’t exist, the fix becomes:\n\n"
    "```diff\n"
    "- glob([\"*.cc\", \"test.cpp\"])\n"
    "+ glob([\"*.cc\"])\n"
    "```\n\n"
    "which improves maintenance and readability.\n\n"
    "If no pattern has a wildcard, just remove the glob. It will also improve build\n"
    "performance (glob can be relatively slow):\n\n"
    "```diff\n"
    "- glob([\"test.cpp\"])\n"
    "+ [\"test.cpp\"]\n"
    "```"
}

warnings: {
  name: "ctx-actions"
  header: "`ctx.{action_name}` is deprecated"
  description:
    "The following [actions](https://docs.bazel.build/versions/main/skylark/lib/actions.html)\n"
    "are deprecated, please use the new API:\n\n"
    "  * [`ctx.new_file`](https://docs.bazel.build/versions/main/skylark/lib/ctx.html#new_file) → [`ctx.actions.declare_file`](https://docs.bazel.build/versions/main/skylark/lib/actions.html#declare_file)\n"
    "  * `ctx.experimental_new_directory` → [`ctx.actions.declare_directory`](https://docs.bazel.build/versions/main/skylark/lib/actions.html#declare_directory)\n"
    "  * [`ctx.file_action`](https://docs.bazel.build/versions/main/skylark/lib/ctx.html#file_action) → [`ctx.actions.write`](https://docs.bazel.build/versions/main/skylark/lib/actions.html#write)\n"
    "  * [`ctx.action(command = \"...\")`](https://docs.bazel.build/versions/main/skylark/lib/ctx.html#action) → [`ctx.actions.run_shell`](https://docs.bazel.build/versions/main/skylark/lib/actions.html#run_shell)\n"
    "  * [`ctx.action(executable = \"...\")`](https://docs.bazel.build/versions/main/skylark/lib/ctx.html#action) → [`ctx.actions.run`](https://docs.bazel.build/versions/main/skylark/lib/actions.html#run)\n"
    "  * [`ctx.empty_action`](https://docs.bazel.build/versions/main/skylark/lib/ctx.html#empty_action) → [`ctx.actions.do_nothing`](https://docs.bazel.build/versions/main/skylark/lib/actions.html#do_nothing)\n"
    "  * [`ctx.template_action`](https://docs.bazel.build/versions/main/skylark/lib/ctx.html#template_action) → [`ctx.actions.expand_template`](https://docs.bazel.build/versions/main/skylark/lib/actions.html#expand_template)"
  bazel_flag: "--incompatible_new_actions_api"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5825"
  autofix: true
}

warnings: {
  name: "ctx-args"
  header: "`ctx.actions.args().add()` for multiple arguments is deprecated"
  description:
    "It's deprecated to use the [`add`](https://docs.bazel.build/versions/main/skylark/lib/Args.html#add)\n"
    "method of `ctx.actions.args()` to add a list (or a depset) of variables. Please use either\n"
    "[`add_all`](https://docs.bazel.build/versions/main/skylark/lib/Args.html#add_all) or\n"
    "[`add_joined`](https://docs.bazel.build/versions/main/skylark/lib/Args.html#add_joined),\n"
    "depending on the desired behavior."
  bazel_flag: "--incompatible_disallow_old_style_args_add"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5822"
  autofix: true
}

warnings: {
  name: "deprecated-function"
  header: "The function is deprecated"
  description:
    "The function defined in another .bzl file has a docstring stating that it's deprecated, i.e. it\n"
    "contains a `Deprecated:` section. The convention for function docstrings is described by\n"
    "the [`function-docstring`](#function-docstring) warning."
}

warnings: {
  name: "depset-items"
  header: "Depset's \"items\" parameter is deprecated"
  description:
    "The `items` parameter for [`depset`](https://docs.bazel.build/versions/main/skylark/lib/globals.html#depset)\n"
    "is deprecated. In its old form it's either a list of direct elements to be\n"
    "added (use the `direct` or unnamed first parameter instead) or a depset that\n"
    "becomes a transitive element of the new depset (use the `transitive` parameter\n"
    "instead)."
  bazel_flag: "--incompatible_disable_depset_items"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/9017"
}

warnings: {
  name: "depset-iteration"
  header: "Depset iteration is deprecated"
  description:
    "Depsets are complex structures, iterations over them and lookups require flattening them to\n"
    "a list which may be a heavy operation. To make it more obvious it's now required to call\n"
    "the `.to_list()` method on them in order to be able to iterate their items:\n\n"
    "```python\n"
    "deps = depset()\n"
    "[x.path for x in deps]  # deprecated\n"
    "[x.path for x in deps.to_list()]  # recommended\n"
    "```"
  bazel_flag: "--incompatible_depset_is_not_iterable"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5816"
  autofix: true
}

warnings: {
  name: "depset-union"
  header: "Depsets should be joined using the depset constructor"
  description:
    "The following ways to merge two depsets are deprecated:\n\n"
    "```python\n"
    "depset1 + depset2\n"
    "depset1 | depset2\n"
    "depset1.union(depset2)\n"
    "```\n\n"
    "Please use the [depset](https://docs.bazel.build/versions/main/skylark/lib/depset.html) constructor\n"
    "instead:\n\n"
    "```python\n"
    "depset(transitive = [depset1, depset2])\n"
    "```\n\n"
    "When fixing this issue, make sure you\n"
    "[understand depsets](https://docs.bazel.build/versions/main/skylark/depsets.html)\n"
    "and try to\n"
    "[reduce the number of calls to depset](https://docs.bazel.build/versions/main/skylark/performance.html#reduce-the-number-of-calls-to-depset).\n"
    "See this [explanation](https://github.com/bazelbuild/bazel/issues/5817#issuecomment-496910826) for more detail."
  bazel_flag: "--incompatible_depset_union"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5817"
}

warnings: {
  name: "dict-concatenation"
  header: "Dictionary concatenation is deprecated"
  description:
    "The `+` operator to concatenate dicts is deprecated. The operator used to create a new dict and\n"
    "copy the data to it. There are several ways to avoid it, for example, instead of `d = d1 + d2 + d3`\n"
    "you can use one of the following:\n\n"
    "  * Use [Skylib](https://github.com/bazelbuild/bazel-skylib):\n\n"
    "```python\n"
    "load(\"@bazel_skylib//lib:dicts.bzl\", \"dicts\")\n\n"
    "d = dicts.add(d1, d2, d3)\n"
    "```\n\n"
    "  * The same if you don't want to use Skylib:\n\n"
    "```python\n"
    "d = dict(d1.items() + d2.items() + d3.items())\n"
    "```\n\n"
    "  * The same in several steps:\n\n"
    "```python\n"
    "d = dict(d1)  # If you don't want `d1` to be mutated\n"
    "d.update(d2)\n"
    "d.update(d3)\n"
    "```"
  bazel_flag: "--incompatible_disallow_dict_plus"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/6461"
}

warnings: {
  name: "dict-method-named-arg"
  header: "Dict methods do not have a named argument `default`"
  description:
    "Dict methods `get`, `pop` and `setdefault` do not accept a named argument\n"
    "called `default`. Due to a bug, Bazel currently accepts that named argument.\n"
    "It is better to use a positional argument instead:\n\n"
    "```diff\n"
    "- mydict.get(5, default = 0)\n"
    "+ mydict.get(5, 0)\n"
    "```"
}

warnings: {
  name: "duplicated-name"
  header: "A rule with name `foo` was already found on line"
  description:
    "Each label in Bazel has a unique name, and Bazel doesn’t allow two rules to have\n"
    "the same name. With macros, this may be accepted by Bazel (if each macro\n"
    "generates different rules):\n\n"
    "```python\n"
    "my_first_macro(name = \"foo\")\n"
    "my_other_macro(name = \"foo\")\n"
    "```\n\n"
    "Although the build may work, this code can be very confusing. It can confuse\n"
    "users reading a BUILD file (if they look for the rule “foo”, they may read see\n"
    "only one of the macros). It will also confuse tools that edit BUILD files.\n\n"
    "To fix the issue just change the name attribute of one rule/macro."
}

warnings: {
  name: "external-path"
  header: "String contains `/external/` which may indicate a dependency on external repositories that could be fragile"
  description:
    "Using `/external/` paths may indicate a hard-coded dependency on external\n"
    "repository locations, which can be fragile and break when external dependencies\n"
    "are updated or reorganized.\n\n"
    "Paths containing `/external/` (without a leading `//`) may indicate:\n"
    "- Direct file system paths to external repositories\n"
    "- Dependencies that bypass Bazel's dependency management\n"
    "- Code that relies on Bazel's internal directory structure\n\n"
    "Examples that trigger this warning:\n\n"
    "```python\n"
    "srcs = [\"/external/some_repo/file.h\"]\n"
    "data = [\"path/external/repo/data.txt\"]\n"
    "```\n\n"
    "Instead, use proper Bazel labels:\n\n"
    "```python\n"
    "srcs = [\"@some_repo//file.h\"]\n"
    "data = [\"@repo//path:data.txt\"]\n"
    "```\n\n"
    "Note: This warning does not apply to main repository paths like `//external/...`\n"
    "which are legitimate Bazel labels."
  autofix: false
}

warnings: {
  name: "filetype"
  header: "The `FileType` function is deprecated"
  description:
    "The function `FileType` is deprecated. Instead of using it as an argument to the\n"
    "[`rule` function](https://docs.bazel.build/versions/main/skylark/lib/globals.html#rule)\n"
    "just use a list of strings."
  bazel_flag: "--incompatible_disallow_filetype"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5831"
}

warnings: {
  name: "function-docstring"
  name: "function-docstring-header"
  name: "function-docstring-args"
  name: "function-docstring-return"
  header: "Function docstring"
  description:
    "Public functions should have docstrings describing functions and their signatures.\n"
    "A docstring is a string literal (not a comment) which should be the first statement\n"
    "of a function (it may follow comment lines). Function docstrings are expected to be\n"
    "formatted in the following way:\n\n"
    "```python\n"
    "\"\"\"One-line summary: must be followed and may be preceded by a blank line.\n"
    "\n"
    "Optional additional description like this.\n"
    "\n"
    "If it's a function docstring and the function has more than one argument, the docstring has\n"
    "to document these parameters as follows:\n"
    "\n"
    "Args:\n"
    "  parameter1: description of the first parameter. Each parameter line\n"
    "    should be indented by one, preferably two, spaces (as here).\n"
    "  parameter2: description of the second\n"
    "    parameter that spans two lines. Each additional line should have a\n"
    "    hanging indentation of at least one, preferably two, additional spaces (as here).\n"
    "  another_parameter (unused, mutable): a parameter may be followed\n"
    "    by additional attributes in parentheses\n"
    "\n"
    "Returns:\n"
    "  Description of the return value.\n"
    "  Should be indented by at least one, preferably two spaces (as here)\n"
    "  Can span multiple lines.\n"
    "\n"
    "Deprecated:\n"
    "  Optional, description of why the function is deprecated and what should be used instead.\n"
    "\"\"\"\n"
    "```\n\n"
    "Docstrings are required for all public functions with at least 5 statements. If a docstring exists\n"
    "it should start with a one-line summary line followed by an empty line. If a docstring is required\n"
    "or it describes some arguments, it should describe all of them. If a docstring is required and\n"
    "the function returns a value, it should be described."
}

warnings: {
  name: "git-repository"
  header: "Function `git_repository` is not global anymore"
  description:
    "Native `git_repository` and `new_git_repository` functions are removed.\n"
    "Please use the Starlark version instead:\n\n"
    "```python\n"
    "load(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"git_repository\")\n"
    "```"
  bazel_flag: "--incompatible_remove_native_git_repository"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/6569"
  autofix: true
}

warnings: {
  name: "http-archive"
  header: "Function `http_archive` is not global anymore"
  description:
    "Native `http_archive` function is removed.\n"
    "Please use the Starlark version instead:\n\n"
    "```python\n"
    "load(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\n"
    "```"
  bazel_flag: "--incompatible_remove_native_http_archive"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/6570"
  autofix: true
}

warnings: {
  name: "integer-division"
  header: "The `/` operator for integer division is deprecated"
  description:
    "The `/` operator is deprecated in favor of `//`, please use the latter for\n"
    "integer division:\n\n"
    "```python\n"
    "a = b // c\n"
    "d //= e\n"
    "```"
  bazel_flag: "--incompatible_disallow_slash_operator"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5823"
  autofix: true
}

warnings: {
  name: "keyword-positional-params"
  header: "Keyword parameter should be positional"
  description:
    "Some parameters for builtin functions in Starlark are keyword for legacy reasons;\n"
    "their names are not meaningful (e.g. `x`). Making them positional-only will improve\n"
    "the readability."
  autofix: true
}

warnings: {
  name: "list-append"
  header: "Prefer using `.append()` to adding a single element list"
  description: "Transforming `x += [expr]` to `x.append(expr)` avoids a list allocation.\n"
    "NOTE: .append() does not work if the target is a select, hence this warning can safely\n"
    "be ignored or suppressed."
  autofix: true
}

warnings: {
  name: "load"
  header: "Loaded symbol is unused"
  description:
    "### Background\n\n"
    "[load](https://docs.bazel.build/versions/main/skylark/concepts.html#loading-an-extension)\n"
    "is used to import definitions in a BUILD file. If the definition is not used in\n"
    "the file, the load can be safely removed. If a symbol is loaded two times, you\n"
    "will get a warning on the second occurrence.\n\n"
    "### How to fix it\n\n"
    "Delete the line. When load is used to import multiple symbols, you can remove\n"
    "the unused symbols from the list. To fix your BUILD files automatically, try\n"
    "this command:\n\n"
    "```bash\n"
    "$ buildozer 'fix unusedLoads' path/to/BUILD\n"
    "```\n\n"
    "If you want to keep the load, you can disable the warning by adding a comment\n"
    "`# @unused`."
  autofix: true
}

warnings: {
  name: "load-on-top"
  header: "Load statements should be at the top of the file"
  description:
    "Obsolete; the warning has been implemented in the formatter and the fix "
    "is now automatically applied to all files except `WORKSPACE` files "
    "(unless suppressed).\n\n"
    "Load statements should be first statements (with the exception of `WORKSPACE` files),\n"
    "they can follow only comments and docstrings."
  bazel_flag: "--incompatible_bzl_disallow_load_after_statement"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5815"
  autofix: true
}

warnings: {
  name: "module-docstring"
  header: "The file has no module docstring"
  description:
    "`.bzl` files should have docstrings on top of them. A docstring is a string literal\n"
    "(not a comment) which should be the first statement of the file (it may follow\n"
    "comment lines). For example:\n\n"
    "```python\n"
    "\"\"\"\n"
    "This module contains build rules for my project.\n"
    "\"\"\"\n"
    "\n"
    "...\n"
    "```"
}

warnings: {
  name: "name-conventions"
  header: "Name conventions"
  description:
    "By convention, all variables should be lower_snake_case, constant should be\n"
    "UPPER_SNAKE_CASE, and providers should be UpperCamelCase ending with `Info`."
}

warnings: {
  name: "native-android"
  header: "All Android build rules should be loaded from Starlark"
  description:
    "The Android build rules should be loaded from Starlark.\n\n"
    "Update: the plans for disabling native rules\n"
    "[have been postponed](https://groups.google.com/g/bazel-discuss/c/XNvpWcge4AE/m/aJ-aQzszAwAJ),\n"
    "at the moment it's not required to load Starlark rules."
  bazel_flag: "--incompatible_disable_native_android_rules"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/8391"
  autofix: true
}

warnings: {
  name: "native-build"
  header: "The `native` module shouldn't be used in BUILD files"
  description:
    "There's no need in using `native.` in BUILD files, its members are available\n"
    "as global symbols there."
  autofix: true
}

warnings: {
  name: "native-cc-binary"
  name: "native-cc-common"
  name: "native-cc-debug-package-info"
  name: "native-cc-fdo-prefetch-hints"
  name: "native-cc-fdo-profile"
  name: "native-cc-import"
  name: "native-cc-info"
  name: "native-cc-library"
  name: "native-cc-memprof-profile"
  name: "native-cc-objc-import"
  name: "native-cc-objc-library"
  name: "native-cc-propeller-optimize"
  name: "native-cc-shared-library"
  name: "native-cc-shared-library-hint-info"
  name: "native-cc-shared-library-info"
  name: "native-cc-test"
  name: "native-cc-toolchain"
  name: "native-cc-toolchain-suite"
  header: "All C++ build rules should be loaded from Starlark"
  description: "The C++ build rules should be loaded from @rules_cc."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-binary"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-import"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-library"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-plugin"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-test"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-package-config"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-runtime"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-toolchain"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-common"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-info"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-plugin-info"
  header: "All Java build rules should be loaded from Starlark"
  description: "The Java build rules should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-package"
  header: "`native.package()` shouldn't be used in .bzl files"
  description:
    "It's discouraged and will be disallowed to use `native.package()` in .bzl files.\n"
    "It can silently modify the semantics of a BUILD file and makes it hard to maintain."
}

warnings: {
  name: "native-proto"
  header: "proto_library rule should be loaded from Starlark"
  description:
    "The proto_library rule should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-proto"
  header: "java_proto_library rule should be loaded from Starlark"
  description:
    "The java_proto_library rule should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-java-lite-proto"
  header: "java_lite_proto_library rule should be loaded from Starlark"
  description:
    "The java_lite_proto_library rule should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-cc-proto"
  header: "cc_proto_library rule should be loaded from Starlark"
  description:
    "The cc_proto_library rule should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-proto-lang-toolchain"
  header: "proto_lang_toolchain rule should be loaded from Starlark"
  description:
    "The proto_lang_toolchain rule should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-proto-info"
  header: "ProtoInfo provider should be loaded from Starlark"
  description:
    "The ProtoInfo provider should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-proto-lang-toolchain-info"
  header: "ProtoLangToolchainInfo provider should be loaded from Starlark"
  description:
    "The ProtoLangToolchainInfo provider should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-proto-common"
  header: "proto_common module should be loaded from Starlark"
  description:
    "The proto_common module should be loaded from Starlark."
  bazel_flag: "--incompatible_autoload_externally"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/23043"
  autofix: true
}

warnings: {
  name: "native-py"
  header: "All Python build rules should be loaded from Starlark"
  description:
    "The Python build rules should be loaded from Starlark.\n\n"
    "Update: the plans for disabling native rules\n"
    "[have been postponed](https://groups.google.com/g/bazel-discuss/c/XNvpWcge4AE/m/aJ-aQzszAwAJ),\n"
    "at the moment it's not required to load Starlark rules."
  bazel_flag: "--incompatible_load_python_rules_from_bzl"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/9006"
  autofix: true
}

warnings: {
  name: "native-sh-binary"
  header: "sh_binary build rules should be loaded from Starlark"
  description: "The sh_binary build rules should be loaded from Starlark."
  autofix: true
}

warnings: {
  name: "native-sh-library"
  header: "sh_library build rules should be loaded from Starlark"
  description: "The sh_library build rules should be loaded from Starlark."
  autofix: true
}

warnings: {
  name: "native-sh-test"
  header: "sh_test build rules should be loaded from Starlark"
  description: "The sh_test build rules should be loaded from Starlark."
  autofix: true
}

warnings: {
  name: "no-effect"
  header: "Expression result is not used"
  description: "The statement has no effect. Consider removing it or storing its result in a variable."
}

warnings: {
  name: "out-of-order-load"
  header: "Load statements should be ordered by their labels"
  description:
    "Obsolete; the warning has been implemented in the formatter and the fix "
    "is now automatically applied to all files (unless suppressed).\n\n"
    "Load statements should be ordered by their first argument - extension file label.\n"
    "This makes it easier to developers to locate loads of interest and reduces chances\n"
    "for conflicts when performing large-scale automated refactoring.\n\n"
    "When applying automated fixes, it's highly recommended to also use\n"
    "[`load-on-top`](#load-on-top) fixes, since otherwise the relative order\n"
    "of a symbol load and its usage can change resulting in runtime error."
  autofix: true
}

warnings: {
  name: "output-group"
  header: "`ctx.attr.dep.output_group` is deprecated"
  description:
    "The `output_group` field of a target is deprecated in favor of the\n"
    "[`OutputGroupInfo` provider](https://docs.bazel.build/versions/main/skylark/lib/OutputGroupInfo.html)."
  bazel_flag: "--incompatible_no_target_output_group"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/7949"
  autofix: true
}

warnings: {
  name: "overly-nested-depset"
  header: "The depset is potentially overly nested"
  description:
    "If a depset is iteratively chained in a for loop, e.g. the following pattern is used:\n\n"
    "```python\n"
    "for ...:\n"
    "    x = depset(..., transitive = [..., x, ...])\n"
    "```\n\n"
    "this can result in an overly nested depset with a long chain of transitive elements. Such patterns\n"
    "can lead to performance problems, consider refactoring the code to create a flat list of transitive\n"
    "elements and call the depset constructor just once:\n\n"
    "```python\n"
    "transitive = []\n"
    "\n"
    "for ...:\n"
    "    transitive += ...\n"
    "\n"
    "x = depset(..., transitive = transitive)\n"
    "```\n\n"
    "Or in simple cases you can use list comprehensions instead:\n\n"
    "```python\n"
    "x = depset(..., transitive = [y.deps for y in ...])\n"
    "```\n\n"
    "For more information, read Bazel documentation about\n"
    "[depsets](https://docs.bazel.build/versions/main/skylark/depsets.html)\n"
    "and\n"
    "[reducing the number of calls to depset](https://docs.bazel.build/versions/main/skylark/performance.html#reduce-the-number-of-calls-to-depset)."
}

warnings: {
  name: "package-name"
  header: "Global variable `PACKAGE_NAME` is deprecated"
  description:
    "The global variable `PACKAGE_NAME` is deprecated, please use\n"
    "[`native.package_name()`](https://docs.bazel.build/versions/main/skylark/lib/native.html#package_name)\n"
    "instead."
  bazel_flag: "--incompatible_package_name_is_a_function"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5827"
  autofix: true
}

warnings: {
  name: "package-on-top"
  header: "Package declaration should be at the top of the file"
  description:
    "Here is a typical structure of a BUILD file:\n\n"
    "  * `load()` statements\n"
    "  * `package()`\n"
    "  * calls to rules, macros\n\n"
    "Instantiating a rule and setting the package defaults later can be very\n"
    "confusing, and has been a source of bugs (tools and humans sometimes believe\n"
    "package applies to everything in a BUILD file). This might become an error in\n"
    "the future.\n\n"
    "### What can be used before package()?\n\n"
    "The linter allows the following to be before `package()`:\n\n"
    "  * comments\n"
    "  * `load()`\n"
    "  * variable declarations\n"
    "  * `package_group()`\n"
    "  * `licenses()`"
}

warnings: {
  name: "positional-args"
  header: "Keyword arguments should be used over positional arguments"
  description:
    "All macro and rule calls should use keyword args over positional arguments.\n"
    "Positional arguments can cause subtle errors if the order is switched or if\n"
    "an argument is removed. Keyword args also greatly improve readability.\n"
    "Additionally, positional arguments prevent migration from [Legacy Macros](https://bazel.build/extending/legacy-macros)\n"
    "to [Symbolic Macros](https://bazel.build/extending/macros).\n\n"
    "```diff\n"
    "- my_macro(\"foo\", \"bar\")\n"
    "+ my_macro(name = \"foo\", env = \"bar\")\n"
    "```\n\n"
    "The linter allows the following functions to be called with positional arguments:\n\n"
    "  * `load()`\n"
    "  * `vardef()`\n"
    "  * `export_files()`\n"
    "  * `licenses()`\n"
    "  * `print()`"
}

warnings: {
  name: "print"
  header: "`print()` is a debug function and shouldn't be submitted"
  description:
    "Using the `print()` function for warnings is discouraged: they are often spammy and\n"
    "non actionable, the people who see the warning are usually not the people who can\n"
    "fix the code to make the warning disappear, and the actual maintainers of the code\n"
    "may never see the warning."
}

warnings: {
  name: "provider-params"
  header: "Calls to `provider` should specify a list of fields and a documentation"
  description:
    "Calls to `provider` should specify a documentation string and a list of fields:\n\n"
    "```python\n"
    "ServerAddressInfo = provider(\n"
    "    \"The address of an HTTP server. Fields are host (string) and port (int).\",\n"
    "    fields = [\"host\", \"port\"]\n"
    ")\n"
    "```\n\n"
    "Fields should also be documented when needed:\n\n"
    "```python\n"
    "ServerAddressInfo = provider(\n"
    "    \"The address of an HTTP server.\",\n"
    "    fields = {\n"
    "        \"host\": \"string, e.g. 'example.com'\",\n"
    "        \"port\": \"int, a TCP port number\",\n"
    "    }\n"
    ")\n"
    "```\n\n"
    "Note that specifying a list of fields is a breaking change. It is an error if a\n"
    "call to the provider uses undeclared fields. If you cannot declare the list of\n"
    "fields, you may explicitly set it to None (and explain why in a comment).\n\n"
    "```python\n"
    "AllInfo = provider(\"This provider accepts any field.\", fields = None)\n"
    "\n"
    "NoneInfo = provider(\"This provider cannot have fields.\", fields = [])\n"
    "```\n\n"
    "See the [documentation for providers](https://docs.bazel.build/versions/main/skylark/lib/globals.html#provider)."
}

warnings: {
  name: "redefined-variable"
  header: "Variable has already been defined"
  description:
    "### Background\n\n"
    "In .bzl files, redefining a global variable is already forbidden. This helps\n"
    "both humans and tools reason about the code. For consistency, we want to bring\n"
    "this restriction also to BUILD files.\n\n"
    "### How to fix it\n\n"
    "Rename one of the variables.\n\n"
    "Note that the content of lists and dictionaries can still be modified. We will\n"
    "forbid reassignment, but not every side-effect."
}

warnings: {
  name: "repository-name"
  header: "Global variable `REPOSITORY_NAME` is deprecated"
  description:
    "The global variable `REPOSITORY_NAME` is deprecated, please use\n"
    "[`native.repository_name()`](https://docs.bazel.build/versions/main/skylark/lib/native.html#repository_name)\n"
    "instead."
  bazel_flag: "--incompatible_package_name_is_a_function"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5827"
  autofix: true
}

warnings: {
  name: "return-value"
  header: "Some but not all execution paths of a function return a value"
  description:
    "Some but not all execution paths of a function return a value. Either there's\n"
    "an explicit empty `return` statement, or an implicit return in the end of a\n"
    "function. If it is intentional, make it explicit using `return None`. If you\n"
    "know certain parts of the code cannot be reached, add the statement\n"
    "`fail(\"unreachable\")` to them."
}

warnings: {
  name: "rule-impl-return"
  header: "Avoid using the legacy provider syntax"
  description:
    "Returning structs from rule implementation functions is\n"
    "[deprecated](https://docs.bazel.build/versions/main/skylark/rules.html#migrating-from-legacy-providers),\n"
    "consider using\n"
    "[providers](https://docs.bazel.build/versions/main/skylark/rules.html#providers)\n"
    "or lists of providers instead."
}

warnings: {
  name: "same-origin-load"
  header: "Same label is used for multiple loads"
  description:
    "Obsolete; the warning has been implemented in the formatter and the fix "
    "is now automatically applied to all files except `WORKSPACE` files "
    "(unless suppressed).\n\n"
    "### Background\n\n"
    "[load](https://docs.bazel.build/versions/main/skylark/concepts.html#loading-an-extension)\n"
    "is used to import definitions in a BUILD file. If the same label is used for loading\n"
    "symbols more the ones, all such loads can be merged into a single one.\n\n"
    "### How to fix it\n\n"
    "Merge all loads into a single one. For example,\n\n"
    "```python\n"
    "load(\":f.bzl\", \"s1\")\n"
    "load(\":f.bzl\", \"s2\")\n"
    "```\n\n"
    "can be written more compactly as\n\n"
    "```python\n"
    "load(\":f.bzl\", \"s1\", \"s2\")\n"
    "```"
  autofix: true
}

warnings: {
  name: "skylark-comment"
  name: "skylark-docstring"
  header: "\"Skylark\" is an outdated name of the language, please use \"starlark\" instead"
  description:
    "The configuration language for Bazel is called \"Starlark\" now, the name \"Skylark\" is\n"
    "outdated and shouldn't be used."
  autofix: true
}

warnings: {
  name: "string-iteration"
  header: "String iteration is deprecated"
  description:
    "Iteration over strings often leads to confusion with iteration over a sequence of strings,\n"
    "therefore strings won't be recognized as sequences of 1-element strings (like in Python).\n"
    "Use string indexing and `len` instead:\n\n"
    "```python\n"
    "my_string = \"hello world\"\n"
    "for i in range(len(my_string)):\n"
    "    char = my_string[i]\n"
    "    # do something with char\n"
    "```"
  bazel_flag: "--incompatible_string_is_not_iterable"
  bazel_flag_link: "https://github.com/bazelbuild/bazel/issues/5830"
}

warnings: {
  name: "uninitialized"
  header: "Variable may not have been initialized"
  description:
    "The local value can be not initialized at the time of execution. It may happen if it's\n"
    "initialized in one of the if-else clauses but not in all of them, or in a for-loop which\n"
    "can potentially be empty."
}

warnings: {
  name: "unnamed-macro"
  header: "The macro should have a keyword argument called \"name\""
  description:
    "By convention all macro functions should have a keyword argument called `name`\n"
    "(even if they don't use it). This is important for tooling and automation.\n\n"
    "A macro is a function that calls a rule (either directly or indirectly by calling other\n"
    "macros).\n\n"
    "If this function is a helper function that's not supposed to be used outside of its file,\n"
    "please make it private (rename it so that the name starts with `_`), this will\n"
    "prevent loading the function from BUILD files and suppress the warning."
}

warnings: {
  name: "unreachable"
  header: "The statement is unreachable"
  description:
    "The statement is unreachable because it follows a `return`, `break`, `continue`,\n"
    "or `fail()` statement."
}

warnings: {
  name: "unsorted-dict-items"
  header: "Dictionary items should be ordered by their keys"
  description:
    "Dictionary items should be sorted lexicographically by their keys. This makes\n"
    "it easier to find the item of interest and reduces chances of conflicts when\n"
    "performing large-scale automated refactoring.\n\n"
    "The order is affected by `NamePriority` dictionary passed using `-tables` or\n"
    "`-add_tables` flags.\n\n"
    "If you want to preserve the original dictionary items order, you can disable\n"
    "the warning by adding a comment `# @unsorted-dict-items` to the dictionary\n"
    "expression or any of its enclosing expressions (binary, if etc). For example,\n\n"
    "```python\n"
    "# @unsorted-dict-items\n"
    "d = {\n"
    "    \"b\": \"bvalue\",\n"
    "    \"a\": \"avalue\",\n"
    "}\n"
    "```\n\n"
    "will not be reported as an issue because the assignment operation that uses\n"
    "the dictionary with unsorted items has a comment disabling this warning."
  autofix: true
}

warnings: {
  name: "unused-variable"
  header: "Variable is unused"
  description:
    "This happens when a variable or function is set but not used in the file, e.g.\n\n"
    "```python\n"
    "x = [1, 2]\n"
    "```\n\n"
    "The line can often be safely removed.\n\n"
    "If you want to keep the variable, you can disable the warning by adding a\n"
    "comment `# @unused`.\n\n"
    "```python\n"
    "x = [1, 2] # @unused\n"
    "\n"
    "# @unused\n"
    "def f(\n"
    "        x,\n"
    "        y,  # @unused\n"
    "):\n"
    "    pass\n"
    "```\n\n"
    "If an unused variable is used for partially unpacking tuples, just prefix\n"
    "its name with an underscore to suppress the warning:\n\n"
    "```python\n"
    "x, _y = foo()\n"
    "for _, (a, _b) in iterable:\n"
    "    print(a + x)\n"
    "```\n\n"
    "The same applies for function arguments that are not used by design:\n\n"
    "```python\n"
    "def foo(a, _b, *_args):\n"
    "    return bar(a)\n"
    "```\n\n"
    "If a tuple is unpacked not in a for-loop and all variables are unused,\n"
    "it'll still trigger a warning, even if all variables are underscored:\n\n"
    "```python\n"
    "_a, _b = pair\n"
    "_unused = 3\n"
    "```"
}
