| module( | |
| name = "other_module", | |
| ) | |
| # This module is using the same version of rules_python | |
| # that the parent module uses. | |
| bazel_dep(name = "rules_python", version = "") | |
| # The story behind this commented out override: | |
| # This override is necessary to generate/update the requirements file | |
| # for this module. This is because running it via the outer | |
| # module doesn't work -- the `requirements.update` target can't find | |
| # the correct file to update. | |
| # Running in the submodule itself works, but submodules using overrides | |
| # is considered an error until Bazel 6.3, which prevents the outer module | |
| # from depending on this module. | |
| # So until 6.3 and higher is the minimum, we leave this commented out. | |
| # local_path_override( | |
| # module_name = "rules_python", | |
| # path = "../../..", | |
| # ) | |
| PYTHON_NAME_39 = "python_3_9" | |
| PYTHON_NAME_311 = "python_3_11" | |
| python = use_extension("@rules_python//python/extensions:python.bzl", "python") | |
| python.toolchain( | |
| configure_coverage_tool = True, | |
| python_version = "3.9", | |
| ) | |
| python.toolchain( | |
| configure_coverage_tool = True, | |
| # In a submodule this is ignored | |
| is_default = True, | |
| python_version = "3.11", | |
| ) | |
| # created by the above python.toolchain calls. | |
| use_repo( | |
| python, | |
| "python_versions", | |
| PYTHON_NAME_39, | |
| PYTHON_NAME_311, | |
| ) | |
| pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") | |
| pip.parse( | |
| hub_name = "other_module_pip", | |
| # NOTE: This version must be different than the root module's | |
| # default python version. | |
| # This is testing that a sub-module can use pip.parse() and only specify | |
| # Python versions that DON'T include whatever the root-module's default | |
| # Python version is. | |
| python_version = "3.11", | |
| requirements_lock = ":requirements_lock_3_11.txt", | |
| ) | |
| use_repo(pip, "other_module_pip") |