Skip to content

v0.18.0

Compare
Choose a tag to compare
@github-actions github-actions released this 09 Apr 15:12
· 163 commits to main since this release
5ac8a21

Using Bzlmod with Bazel 6

  1. Enable with common --enable_bzlmod in .bazelrc.
  2. Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_lint", version = "0.18.0")

# Next, follow the install instructions for
# - linting: https://github.com/aspect-build/rules_lint/blob/v0.18.0/docs/linting.md
# - formatting: https://github.com/aspect-build/rules_lint/blob/v0.18.0/docs/formatting.md

Using WORKSPACE

Paste this snippet into your file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
    name = "aspect_rules_lint",
    sha256 = "a3e07f07216b6b406d2297c273e7af4cc8096b43288952020cdf4dc12f45b5e8",
    strip_prefix = "rules_lint-0.18.0",
    url = "https://github.com/aspect-build/rules_lint/releases/download/v0.18.0/rules_lint-v0.18.0.tar.gz",
)

# aspect_rules_lint depends on aspect_bazel_lib. Either 1.x or 2.x works.
http_archive(
    name = "aspect_bazel_lib",
    sha256 = "979667bb7276ee8fcf2c114c9be9932b9a3052a64a647e0dcaacfb9c0016f0a3",
    strip_prefix = "bazel-lib-2.4.1",
    url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.4.1/bazel-lib-v2.4.1.tar.gz",
)
load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies")

# aspect_bazel_lib depends on bazel_skylib
aspect_bazel_lib_dependencies()

load(
    "@aspect_rules_lint//format:repositories.bzl",
    # Fetch additional formatter binaries you need:
    "fetch_java_format",
    "fetch_ktfmt",
    "fetch_swiftformat",
    "rules_lint_dependencies",
)

rules_lint_dependencies()

fetch_java_format()

fetch_ktfmt()

fetch_swiftformat()

load("@aspect_rules_lint//lint:pmd.bzl", "fetch_pmd")

fetch_pmd()

load("@aspect_rules_lint//lint:ruff.bzl", "fetch_ruff")

# https://github.com/astral-sh/ruff/pull/8631#issuecomment-2022746290
fetch_ruff("v0.3.2")

load("@aspect_rules_lint//lint:vale.bzl", "fetch_vale")

fetch_vale()

########################
# Optional: multitool provides defaults for some tools such as yamlfmt
# If you do not set up multitool, you will be forced to either set an explicit tool
# for languages that have a default, or set explicit False value, e.g.
#   format_multirun(jsonnet = False)
load("@rules_multitool//multitool:multitool.bzl", "multitool")

multitool(
    name = "multitool",
    lockfiles = [
        "@aspect_rules_lint//format:multitool.lock.json",
        "@aspect_rules_lint//lint:multitool.lock.json",
    ],
)

What's Changed

  • docs: update install docs for non-multitool linters by @alexeagle in #204
  • refactor: bring linters under rules_multitool by @alexeagle in #203

Full Changelog: v0.17.0...v0.18.0