From cfa44622fb1d04b8c747c37d09e0639786b8552a Mon Sep 17 00:00:00 2001 From: Michael Schuett Date: Mon, 23 Dec 2024 22:41:03 -0500 Subject: [PATCH 1/6] Add example of different packages per python version This is me trying to add an example of something that I was seeing not work as I expected internally and making sure it wasn't something specific to our repo. In our usecase we actually have a package interal that only works up to a specific version of python. However I keep getting this error when using py_binary or py_test. ``` ERROR: /private/var/tmp/_bazel_schuettm/e053d0eaf0a843e9f76bdb61766af4b7/external/rules_python++pip+pypi_3_10_only/flask/BUILD.bazel:5:12: configurable attribute "actual" in @@rules_python++pip+pypi_3_10_only//flask:pkg doesn't match this configuration: No matching wheel for current configuration's Python version. The current build configuration's Python version doesn't match any of the Python wheels available for this distribution. This distribution supports the following Python configuration settings: //_config:is_python_3.11 To determine the current configuration's Python version, run: `bazel config ` (shown further below) and look for one of: @@rules_python+//python/config_settings:python_version @@rules_python+//python/config_settings:pip_whl @@rules_python+//python/config_settings:pip_whl_glibc_version @@rules_python+//python/config_settings:pip_whl_muslc_version @@rules_python+//python/config_settings:pip_whl_osx_arch @@rules_python+//python/config_settings:pip_whl_osx_version @@rules_python+//python/config_settings:py_freethreaded @@rules_python+//python/config_settings:py_linux_libc If the value is missing, then the default value is being used, see documentation: https://rules-python.readthedocs.io/en/latest/api/rules_python/python/config_settings This instance of @@rules_python++pip+pypi_3_10_only//flask:pkg has configuration identifier e62ee83. To inspect its configuration, run: bazel config e62ee83. For more help, see https://bazel.build/docs/configurable-attributes#faq-select-choose-condition. Use --verbose_failures to see the command lines of failed build steps. ERROR: Analysis of target '//tests:my_lib_3_10_only_test' failed; build aborted: Analysis failed INFO: Elapsed time: 0.197s, Critical Path: 0.02s INFO: 2 processes: 2 internal. ERROR: Build did NOT complete successfully //tests:test_versions NO STATUS Executed 0 out of 1 test: 1 was skipped. ``` Following the directions hasn't helped me but maybe it makes more sense to someone else. --- examples/multi_python_versions/MODULE.bazel | 6 ++ .../libs/my_310_only_lib/BUILD.bazel | 11 +++ .../libs/my_310_only_lib/__init__.py | 19 ++++ .../libs/my_lib/BUILD.bazel | 4 +- .../requirements/BUILD.bazel | 6 ++ .../requirements/requirements_3_10_only.in | 1 + .../requirements_lock_3_10_only.txt | 95 +++++++++++++++++++ .../multi_python_versions/tests/BUILD.bazel | 7 ++ 8 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 examples/multi_python_versions/libs/my_310_only_lib/BUILD.bazel create mode 100644 examples/multi_python_versions/libs/my_310_only_lib/__init__.py create mode 100644 examples/multi_python_versions/requirements/requirements_3_10_only.in create mode 100644 examples/multi_python_versions/requirements/requirements_lock_3_10_only.txt diff --git a/examples/multi_python_versions/MODULE.bazel b/examples/multi_python_versions/MODULE.bazel index 578315741f..e500570089 100644 --- a/examples/multi_python_versions/MODULE.bazel +++ b/examples/multi_python_versions/MODULE.bazel @@ -36,6 +36,7 @@ use_repo( pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") use_repo(pip, "pypi") +use_repo(pip, "pypi_3_10_only") pip.parse( hub_name = "pypi", python_version = "3.8", @@ -56,6 +57,11 @@ pip.parse( python_version = "3.11", requirements_lock = "//requirements:requirements_lock_3_11.txt", ) +pip.parse( + hub_name = "pypi_3_10_only", + python_version = "3.11", + requirements_lock = "//requirements:requirements_lock_3_10_only.txt", +) # example test dependencies bazel_dep(name = "rules_shell", version = "0.2.0", dev_dependency = True) diff --git a/examples/multi_python_versions/libs/my_310_only_lib/BUILD.bazel b/examples/multi_python_versions/libs/my_310_only_lib/BUILD.bazel new file mode 100644 index 0000000000..d99a572c5b --- /dev/null +++ b/examples/multi_python_versions/libs/my_310_only_lib/BUILD.bazel @@ -0,0 +1,11 @@ +load("@pypi_3_10_only//:requirements.bzl", "requirement") +load("@rules_python//python:py_library.bzl", "py_library") + +py_library( + name = "my_310_only_lib", + srcs = ["__init__.py"], + visibility = ["@//tests:__pkg__"], + deps = [ + requirement("flask") + ], +) diff --git a/examples/multi_python_versions/libs/my_310_only_lib/__init__.py b/examples/multi_python_versions/libs/my_310_only_lib/__init__.py new file mode 100644 index 0000000000..786f69f275 --- /dev/null +++ b/examples/multi_python_versions/libs/my_310_only_lib/__init__.py @@ -0,0 +1,19 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import flask + + +# def flask_is_for_python_version(sanitized_version_check): +# return f"pypi_{sanitized_version_check}_flask" in websockets.__file__ diff --git a/examples/multi_python_versions/libs/my_lib/BUILD.bazel b/examples/multi_python_versions/libs/my_lib/BUILD.bazel index 7ff62249c4..404ba835c7 100644 --- a/examples/multi_python_versions/libs/my_lib/BUILD.bazel +++ b/examples/multi_python_versions/libs/my_lib/BUILD.bazel @@ -5,5 +5,7 @@ py_library( name = "my_lib", srcs = ["__init__.py"], visibility = ["@//tests:__pkg__"], - deps = [requirement("websockets")], + deps = [ + requirement("websockets") + ], ) diff --git a/examples/multi_python_versions/requirements/BUILD.bazel b/examples/multi_python_versions/requirements/BUILD.bazel index f67333a657..5cbf88a5ea 100644 --- a/examples/multi_python_versions/requirements/BUILD.bazel +++ b/examples/multi_python_versions/requirements/BUILD.bazel @@ -21,6 +21,12 @@ compile_pip_requirements_3_10( requirements_txt = "requirements_lock_3_10.txt", ) +compile_pip_requirements_3_10( + name = "requirements_3_10_only", + src = "requirements_3_10_only.in", + requirements_txt = "requirements_lock_3_10_only.txt", +) + compile_pip_requirements_3_11( name = "requirements_3_11", src = "requirements.in", diff --git a/examples/multi_python_versions/requirements/requirements_3_10_only.in b/examples/multi_python_versions/requirements/requirements_3_10_only.in new file mode 100644 index 0000000000..7e1060246f --- /dev/null +++ b/examples/multi_python_versions/requirements/requirements_3_10_only.in @@ -0,0 +1 @@ +flask diff --git a/examples/multi_python_versions/requirements/requirements_lock_3_10_only.txt b/examples/multi_python_versions/requirements/requirements_lock_3_10_only.txt new file mode 100644 index 0000000000..927e88bda2 --- /dev/null +++ b/examples/multi_python_versions/requirements/requirements_lock_3_10_only.txt @@ -0,0 +1,95 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# bazel run //requirements:requirements_3_10_only.update +# +blinker==1.9.0 \ + --hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \ + --hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc + # via flask +click==8.1.8 \ + --hash=sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2 \ + --hash=sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a + # via flask +flask==3.1.0 \ + --hash=sha256:5f873c5184c897c8d9d1b05df1e3d01b14910ce69607a117bd3277098a5836ac \ + --hash=sha256:d667207822eb83f1c4b50949b1623c8fc8d51f2341d65f72e1a1815397551136 + # via -r requirements/requirements_3_10_only.in +itsdangerous==2.2.0 \ + --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ + --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 + # via flask +jinja2==3.1.5 \ + --hash=sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb \ + --hash=sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb + # via flask +markupsafe==3.0.2 \ + --hash=sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4 \ + --hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \ + --hash=sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0 \ + --hash=sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9 \ + --hash=sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396 \ + --hash=sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13 \ + --hash=sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028 \ + --hash=sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca \ + --hash=sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557 \ + --hash=sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832 \ + --hash=sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0 \ + --hash=sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b \ + --hash=sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579 \ + --hash=sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a \ + --hash=sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c \ + --hash=sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff \ + --hash=sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c \ + --hash=sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22 \ + --hash=sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094 \ + --hash=sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb \ + --hash=sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e \ + --hash=sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5 \ + --hash=sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a \ + --hash=sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d \ + --hash=sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a \ + --hash=sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b \ + --hash=sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8 \ + --hash=sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225 \ + --hash=sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c \ + --hash=sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144 \ + --hash=sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f \ + --hash=sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87 \ + --hash=sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d \ + --hash=sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93 \ + --hash=sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf \ + --hash=sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158 \ + --hash=sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84 \ + --hash=sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb \ + --hash=sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48 \ + --hash=sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171 \ + --hash=sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c \ + --hash=sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6 \ + --hash=sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd \ + --hash=sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d \ + --hash=sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1 \ + --hash=sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d \ + --hash=sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca \ + --hash=sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a \ + --hash=sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29 \ + --hash=sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe \ + --hash=sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798 \ + --hash=sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c \ + --hash=sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8 \ + --hash=sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f \ + --hash=sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f \ + --hash=sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a \ + --hash=sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178 \ + --hash=sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0 \ + --hash=sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79 \ + --hash=sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430 \ + --hash=sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50 + # via + # jinja2 + # werkzeug +werkzeug==3.1.3 \ + --hash=sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e \ + --hash=sha256:60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746 + # via flask diff --git a/examples/multi_python_versions/tests/BUILD.bazel b/examples/multi_python_versions/tests/BUILD.bazel index d04ac6bb0a..67d617e5ba 100644 --- a/examples/multi_python_versions/tests/BUILD.bazel +++ b/examples/multi_python_versions/tests/BUILD.bazel @@ -78,6 +78,13 @@ py_test_3_10( deps = ["//libs/my_lib"], ) +py_test_3_10( + name = "my_lib_3_10_only_test", + srcs = ["my_lib_test.py"], + main = "my_lib_test.py", + deps = ["//libs/my_310_only_lib"], +) + py_test_3_11( name = "my_lib_3_11_test", srcs = ["my_lib_test.py"], From 01bf6e094938180d685f78aebf0bc20c98eed94e Mon Sep 17 00:00:00 2001 From: Michael Schuett Date: Tue, 24 Dec 2024 09:49:02 -0500 Subject: [PATCH 2/6] fix versioning --- examples/multi_python_versions/MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/multi_python_versions/MODULE.bazel b/examples/multi_python_versions/MODULE.bazel index e500570089..8bc7031893 100644 --- a/examples/multi_python_versions/MODULE.bazel +++ b/examples/multi_python_versions/MODULE.bazel @@ -59,7 +59,7 @@ pip.parse( ) pip.parse( hub_name = "pypi_3_10_only", - python_version = "3.11", + python_version = "3.10", requirements_lock = "//requirements:requirements_lock_3_10_only.txt", ) From ca91b5472096a43406449ea2072efbc0adb856b5 Mon Sep 17 00:00:00 2001 From: Michael Schuett Date: Thu, 26 Dec 2024 09:54:25 -0500 Subject: [PATCH 3/6] Update examples/multi_python_versions/libs/my_310_only_lib/BUILD.bazel Co-authored-by: Ignas Anikevicius <240938+aignas@users.noreply.github.com> --- .../multi_python_versions/libs/my_310_only_lib/BUILD.bazel | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/multi_python_versions/libs/my_310_only_lib/BUILD.bazel b/examples/multi_python_versions/libs/my_310_only_lib/BUILD.bazel index d99a572c5b..6b10fc9ae5 100644 --- a/examples/multi_python_versions/libs/my_310_only_lib/BUILD.bazel +++ b/examples/multi_python_versions/libs/my_310_only_lib/BUILD.bazel @@ -8,4 +8,8 @@ py_library( deps = [ requirement("flask") ], + target_compatible_with = select({ + "@rules_python//python/config_settings:is_python_3.10": [], + "//conditions:default": ["@platforms//:incompatible"], + }) ) From 1db3d69dfc6ba03e5f2f276678002c3642e02847 Mon Sep 17 00:00:00 2001 From: Michael Schuett Date: Thu, 26 Dec 2024 10:00:00 -0500 Subject: [PATCH 4/6] Add platforms dep --- examples/multi_python_versions/MODULE.bazel | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/multi_python_versions/MODULE.bazel b/examples/multi_python_versions/MODULE.bazel index 8bc7031893..536d83017d 100644 --- a/examples/multi_python_versions/MODULE.bazel +++ b/examples/multi_python_versions/MODULE.bazel @@ -3,6 +3,7 @@ module( ) bazel_dep(name = "bazel_skylib", version = "1.7.1") +bazel_dep(name = "platforms", version = "0.0.10") bazel_dep(name = "rules_python", version = "0.0.0") local_path_override( module_name = "rules_python", From 4eeed130a713454143c7f6838505645ffec77fbd Mon Sep 17 00:00:00 2001 From: Michael Schuett Date: Thu, 26 Dec 2024 11:00:40 -0500 Subject: [PATCH 5/6] fix test --- .../libs/my_310_only_lib/__init__.py | 4 +-- .../multi_python_versions/tests/BUILD.bazel | 4 +-- .../tests/my_310_only_lib_test.py | 31 +++++++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 examples/multi_python_versions/tests/my_310_only_lib_test.py diff --git a/examples/multi_python_versions/libs/my_310_only_lib/__init__.py b/examples/multi_python_versions/libs/my_310_only_lib/__init__.py index 786f69f275..10dc8d23ff 100644 --- a/examples/multi_python_versions/libs/my_310_only_lib/__init__.py +++ b/examples/multi_python_versions/libs/my_310_only_lib/__init__.py @@ -15,5 +15,5 @@ import flask -# def flask_is_for_python_version(sanitized_version_check): -# return f"pypi_{sanitized_version_check}_flask" in websockets.__file__ +def flask_is_for_python_version(sanitized_version_check): + return f"pypi_{sanitized_version_check}_only_310_flask" in flask.__file__ diff --git a/examples/multi_python_versions/tests/BUILD.bazel b/examples/multi_python_versions/tests/BUILD.bazel index 67d617e5ba..aafa4e6e53 100644 --- a/examples/multi_python_versions/tests/BUILD.bazel +++ b/examples/multi_python_versions/tests/BUILD.bazel @@ -80,8 +80,8 @@ py_test_3_10( py_test_3_10( name = "my_lib_3_10_only_test", - srcs = ["my_lib_test.py"], - main = "my_lib_test.py", + srcs = ["my_310_only_lib_test.py"], + main = "my_310_only_lib_test.py", deps = ["//libs/my_310_only_lib"], ) diff --git a/examples/multi_python_versions/tests/my_310_only_lib_test.py b/examples/multi_python_versions/tests/my_310_only_lib_test.py new file mode 100644 index 0000000000..436cb8b46f --- /dev/null +++ b/examples/multi_python_versions/tests/my_310_only_lib_test.py @@ -0,0 +1,31 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import sys + +import libs.my_310_only_lib as my_lib + +workspace_version = f"{sys.version_info.major}_{sys.version_info.minor}" +bzlmod_version = f"{sys.version_info.major}{sys.version_info.minor}" + +if not my_lib.flask_is_for_python_version( + workspace_version +) and not my_lib.flask_is_for_python_version(bzlmod_version): + print( + "expected package for Python version is different than returned\n" + f"expected either {workspace_version} or {bzlmod_version}\n" + f"but got {my_lib.flask.__file__}" + ) + sys.exit(1) From 02b38bf75f31ef39933d798e5693d156edcb0cab Mon Sep 17 00:00:00 2001 From: Michael Schuett Date: Thu, 26 Dec 2024 11:19:02 -0500 Subject: [PATCH 6/6] workspace fix? --- examples/multi_python_versions/WORKSPACE | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/multi_python_versions/WORKSPACE b/examples/multi_python_versions/WORKSPACE index 48d2065282..189e0e61a1 100644 --- a/examples/multi_python_versions/WORKSPACE +++ b/examples/multi_python_versions/WORKSPACE @@ -30,12 +30,14 @@ multi_pip_parse( default_version = default_python_version, python_interpreter_target = { "3.10": "@python_3_10_host//:python", + "3.10_only": "@python_3_10_host//:python", "3.11": "@python_3_11_host//:python", "3.8": "@python_3_8_host//:python", "3.9": "@python_3_9_host//:python", }, requirements_lock = { "3.10": "//requirements:requirements_lock_3_10.txt", + "3.10_only": "//requirements:requirements_lock_3_10_only.txt", "3.11": "//requirements:requirements_lock_3_11.txt", "3.8": "//requirements:requirements_lock_3_8.txt", "3.9": "//requirements:requirements_lock_3_9.txt",