Update bazel-contrib/setup-bazel action to v0.9.0 (#28) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [bazel-contrib/setup-bazel](https://redirect.github.com/bazel-contrib/setup-bazel) | action | minor | `0.8.0` -> `0.9.0` | --- ### Release Notes <details> <summary>bazel-contrib/setup-bazel (bazel-contrib/setup-bazel)</summary> ### [`v0.9.0`](https://redirect.github.com/bazel-contrib/setup-bazel/releases/tag/0.9.0) [Compare Source](https://redirect.github.com/bazel-contrib/setup-bazel/compare/0.8.5...0.9.0) #### What's Changed - Update dependency yaml to v2.4.4 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/26](https://redirect.github.com/bazel-contrib/setup-bazel/pull/26) - Update dependency yaml to v2.4.5 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/27](https://redirect.github.com/bazel-contrib/setup-bazel/pull/27) - Update dependency node to v20.15.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/29](https://redirect.github.com/bazel-contrib/setup-bazel/pull/29) - Update dependency node to v20.15.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/30](https://redirect.github.com/bazel-contrib/setup-bazel/pull/30) - Update dependency yaml to v2.5.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/31](https://redirect.github.com/bazel-contrib/setup-bazel/pull/31) - Update dependency node to v20.16.0 - autoclosed by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/32](https://redirect.github.com/bazel-contrib/setup-bazel/pull/32) - Update dependency [@​actions/glob](https://redirect.github.com/actions/glob) to ^0.5.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/33](https://redirect.github.com/bazel-contrib/setup-bazel/pull/33) - Update dependency node to v20.17.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/34](https://redirect.github.com/bazel-contrib/setup-bazel/pull/34) - Update dependency yaml to v2.5.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/35](https://redirect.github.com/bazel-contrib/setup-bazel/pull/35) - Add a process.exit after storing caches by [@​chrismgrayftsinc](https://redirect.github.com/chrismgrayftsinc) in [https://github.com/bazel-contrib/setup-bazel/pull/37](https://redirect.github.com/bazel-contrib/setup-bazel/pull/37) - Update dependency [@​vercel/ncc](https://redirect.github.com/vercel/ncc) to v0.38.2 - autoclosed by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/38](https://redirect.github.com/bazel-contrib/setup-bazel/pull/38) #### New Contributors - [@​chrismgrayftsinc](https://redirect.github.com/chrismgrayftsinc) made their first contribution in [https://github.com/bazel-contrib/setup-bazel/pull/37](https://redirect.github.com/bazel-contrib/setup-bazel/pull/37) **Full Changelog**: https://github.com/bazel-contrib/setup-bazel/compare/0.8.5...0.9.0 ### [`v0.8.5`](https://redirect.github.com/bazel-contrib/setup-bazel/releases/tag/0.8.5) [Compare Source](https://redirect.github.com/bazel-contrib/setup-bazel/compare/0.8.4...0.8.5) #### What's Changed - Update dependency node to v20.14.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/20](https://redirect.github.com/bazel-contrib/setup-bazel/pull/20) - Update dependency yaml to v2.4.3 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/22](https://redirect.github.com/bazel-contrib/setup-bazel/pull/22) - Set octokit's baseUrl explicitly to make it work with self-hosted GitHub Enterprise Servers by [@​markszabo](https://redirect.github.com/markszabo) in [https://github.com/bazel-contrib/setup-bazel/pull/24](https://redirect.github.com/bazel-contrib/setup-bazel/pull/24) #### New Contributors - [@​markszabo](https://redirect.github.com/markszabo) made their first contribution in [https://github.com/bazel-contrib/setup-bazel/pull/24](https://redirect.github.com/bazel-contrib/setup-bazel/pull/24) **Full Changelog**: https://github.com/bazel-contrib/setup-bazel/compare/0.8.4...0.8.5 ### [`v0.8.4`](https://redirect.github.com/bazel-contrib/setup-bazel/releases/tag/0.8.4) [Compare Source](https://redirect.github.com/bazel-contrib/setup-bazel/compare/0.8.2...0.8.4) #### What's Changed - Update dependency yaml to v2.4.2 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/14](https://redirect.github.com/bazel-contrib/setup-bazel/pull/14) - Update dependency node to v20.13.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/15](https://redirect.github.com/bazel-contrib/setup-bazel/pull/15) - Update dependency node to v20.13.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/16](https://redirect.github.com/bazel-contrib/setup-bazel/pull/16) - Make bazelisk in a tool cache available in the PATH by [@​p0deje](https://redirect.github.com/p0deje) in [https://github.com/bazel-contrib/setup-bazel/pull/19](https://redirect.github.com/bazel-contrib/setup-bazel/pull/19) **Full Changelog**: https://github.com/bazel-contrib/setup-bazel/compare/0.8.2...0.8.4 ### [`v0.8.2`](https://redirect.github.com/bazel-contrib/setup-bazel/releases/tag/0.8.2) [Compare Source](https://redirect.github.com/bazel-contrib/setup-bazel/compare/0.8.1...0.8.2) #### What's Changed - Update dependency node to v20.12.2 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/12](https://redirect.github.com/bazel-contrib/setup-bazel/pull/12) **Full Changelog**: https://github.com/bazel-contrib/setup-bazel/compare/0.8.1...0.8.2 ### [`v0.8.1`](https://redirect.github.com/bazel-contrib/setup-bazel/releases/tag/0.8.1) [Compare Source](https://redirect.github.com/bazel-contrib/setup-bazel/compare/0.8.0...0.8.1) #### What's Changed - Configure Renovate by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/3](https://redirect.github.com/bazel-contrib/setup-bazel/pull/3) - Update dependency node to v20.11.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/5](https://redirect.github.com/bazel-contrib/setup-bazel/pull/5) - Update dependency [@​actions/cache](https://redirect.github.com/actions/cache) to v3.2.4 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/4](https://redirect.github.com/bazel-contrib/setup-bazel/pull/4) - Fix version in package.json by [@​p0deje](https://redirect.github.com/p0deje) in [https://github.com/bazel-contrib/setup-bazel/pull/7](https://redirect.github.com/bazel-contrib/setup-bazel/pull/7) - Update dependency yaml to v2.4.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/9](https://redirect.github.com/bazel-contrib/setup-bazel/pull/9) - Update dependency [@​vercel/ncc](https://redirect.github.com/vercel/ncc) to ^0.38.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/bazel-contrib/setup-bazel/pull/8](https://redirect.github.com/bazel-contrib/setup-bazel/pull/8) - Don't follow symlinks when hashing cache files by [@​p0deje](https://redirect.github.com/p0deje) in [https://github.com/bazel-contrib/setup-bazel/pull/10](https://redirect.github.com/bazel-contrib/setup-bazel/pull/10) #### New Contributors - [@​renovate](https://redirect.github.com/renovate) made their first contribution in [https://github.com/bazel-contrib/setup-bazel/pull/3](https://redirect.github.com/bazel-contrib/setup-bazel/pull/3) - [@​p0deje](https://redirect.github.com/p0deje) made their first contribution in [https://github.com/bazel-contrib/setup-bazel/pull/7](https://redirect.github.com/bazel-contrib/setup-bazel/pull/7) **Full Changelog**: https://github.com/bazel-contrib/setup-bazel/compare/0.8.0...0.8.1 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "every weekday after 9am before 5pm" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. â™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMTQuMCIsInVwZGF0ZWRJblZlciI6IjM4LjExNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhdXRvbWVyZ2UiXX0=-->
An aspect to instrument py_* targets with mypy type-checking.
Compared to bazel-mypy-integration, this ruleset aims to make a couple of improvements:
[!WARNING]
rules_mypy's build actions produce mypy caches as outputs, and these may contain large file counts and that will only grow as a dependency chain grows. This may have an impact on the size and usage of build and/or remote caches.
This aspect will run over any py_binary, py_library or py_test.
Setup is significantly easier with bzlmod, we recommend and predominantly support bzlmod, though these rules should work without issue in non-bzlmod setups, albeit with more work to configure.
Add rules_mypy to your MODULE.bazel:
bazel_dep(name = "rules_mypy", version = "0.0.0")
Optionally, configure a types repository:
Many Python packages have separately published types/stubs packages. While mypy (and these rules) will work without including these types, this ruleset provides some utilities for leveraging these types to improve mypy's type checking.
types = use_extension("@rules_mypy//mypy:types.bzl", "types") types.requirements( name = "pip_types", # `@pip` in the next line corresponds to the `hub_name` when using # rules_python's `pip.parse(...)`. pip_requirements = "@pip//:requirements.bzl", # also legal to pass a `requirements.in` here requirements_txt = "//:requirements.txt", ) use_repo(types, "pip_types")
Configure mypy_aspect.
Define a new aspect in a .bzl file (such as ./tools/aspects.bzl):
load("@pip_types//:types.bzl", "types") load("@rules_mypy//mypy:mypy.bzl", "mypy") mypy_aspect = mypy(types = types)
Update your .bazelrc to include this new aspect:
# register mypy_aspect with Bazel build --aspects //tools:aspects.bzl%mypy_aspect # optionally, default enable the mypy checks build --output_groups=+mypy
mypy's behavior may be customized using a mypy config file file. To use a mypy config file, pass a label for a valid config file to the mypy aspect factory:
mypy_aspect = mypy( mypy_ini = "@@//:mypy.ini", types = types, )
[!NOTE] The label passed to
mypy_inineeds to be absolute (a prefix of@@means the root repo).
[!NOTE] mypy.ini files should likely contain the following lines to suppress type-checking 3rd party modules.
follow_imports = silent follow_imports_for_stubs = True
To customize the version of mypy, use rules_python's requirements resolution and construct a custom mypy CLI:
# in a BUILD file load("@pip//:requirements.bzl", "requirements") # '@pip' must match configured pip hub_name load("@rules_mypy//mypy:mypy.bzl", "mypy", "mypy_cli") mypy_cli( name = "mypy_cli", mypy_requirement = requirement("mypy"), )
And in your aspects.bzl (or similar) file:
load("@rules_mypy//mypy:mypy.bzl", "mypy") mypy_aspect = mypy( mypy_cli = ":mypy_cli", types = types, )
Further, to use mypy plugins referenced in any config file, use the deps attribute of mypy_cli:
# in a BUILD file load("@pip//:requirements.bzl", "requirement") # '@pip' must match configured pip hub_name load("@rules_mypy//mypy:mypy.bzl", "mypy", "mypy_cli") mypy_cli( name = "mypy_cli", mypy_requirement = requirement("mypy"), deps = [ requirement("pydantic"), ], )
Skip running mypy on targets by tagging with no-mypy, or customize the tags that will suppress mypy by providing a list to the suppression_tags argument of the mypy aspect initializer:
load("@rules_mypy//mypy:mypy.bzl", "mypy") mypy_aspect = mypy( suppression_tags = ["no-mypy", "no-checks"], types = types, )