diff --git a/MODULE.bazel b/MODULE.bazel index 597d4d9f..57fcb56f 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -32,13 +32,13 @@ bazel_dep(name = "googletest", version = "1.17.0.bcr.2", dev_dependency = True) http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") _PYTHON_VERSIONS = [ - "3.10", "3.11", "3.12", "3.13", + "3.14", ] -_DEFAULT_PYTHON = "3.10" +_DEFAULT_PYTHON = _PYTHON_VERSIONS[0] # Keep in sync with /WORSPACE, /BUILD.bazel and /repositories/private/BUILD.bazel python = use_extension("@rules_python//python/extensions:python.bzl", "python") @@ -66,7 +66,7 @@ use_repo(pip, "rules_ros2_pip_deps") dev_pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip", dev_dependency = True) dev_pip.parse( hub_name = "rules_ros2_resolver_deps", - python_version = "3.10", + python_version = _DEFAULT_PYTHON, requirements_lock = "//repositories/private:resolver_requirements_lock.txt", ) use_repo(dev_pip, "rules_ros2_resolver_deps") diff --git a/WORKSPACE b/WORKSPACE index d3295bce..421d71df 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -16,7 +16,7 @@ py_repositories() python_register_toolchains( name = "rules_ros2_python", - python_version = "3.10", + python_version = "3.11", # Keep in sync with MODULE.bazel ) load("@rules_python//python:pip.bzl", "pip_parse") diff --git a/examples/MODULE.bazel b/examples/MODULE.bazel index c92b4b7d..80c76925 100644 --- a/examples/MODULE.bazel +++ b/examples/MODULE.bazel @@ -13,11 +13,11 @@ bazel_dep(name = "rules_rust", version = "0.63.0") python = use_extension("@rules_python//python/extensions:python.bzl", "python") python.toolchain( is_default = True, - # You must pin the Python version to the one used for rules_ros2_pip_deps_numpy_headers and current_py_cc_headers in rules_ros2. + # You must pin the Python version to one that is compatible to the rules_ros2_pip_deps_numpy_headers and current_py_cc_headers in rules_ros2. # Otherwise you will get errors at analysis time like: # configurable attribute "actual" in @@rules_python~~pip~rules_ros2_pip_deps//numpy:_no_matching_repository 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. - python_version = "3.10", + python_version = "3.14", ) register_toolchains( diff --git a/examples/README.md b/examples/README.md index e3a6c2aa..d8dbbbb7 100644 --- a/examples/README.md +++ b/examples/README.md @@ -13,14 +13,14 @@ explained how to set up each of them with some pros and cons. ### WORKSPACE-file based setup -This is [traditional](https://bazel.build/versions/7.5.0/external/overview#workspace-system) way of setting up external dependencies that Bazel-team plans to phase out. +This is [deprecated](https://bazel.build/versions/7.5.0/external/overview#workspace-system) way of setting up external dependencies that Bazel has removed in version 9.0.0. Please take a look at the `WORKSPACE` file in this folder to get an idea how to set up yourself. This approach allows one to customize a Python interpreter and Python deps in `requirements.txt` file. In particular, the user is responsible to define the interpreter and requirements lock file in their repo. The official interpreter version for ROS 2 Humble is 3.10 and in `WORKSPACE` file a 3.10 interpreter is setup up. Please pay attention that -resolved dependencies in `requirements_lock.txt` file are resolved for Python 3.10. +resolved dependencies in `requirements_lock.txt` file are resolved for one specific Python version. If you want to use this approach, make sure you have the following lines in your `.bazelrc` file: @@ -30,11 +30,11 @@ common --noenable_bzlmod --enable_workspace ### [bzlmod](https://bazel.build/versions/7.5.0/external/overview#bzlmod)-based setup -This is the new external dependency subsystem. Please take a look at the `MODULE.bazel` file in this folder to get an idea how to set up yourself. +This is the current external dependency subsystem. +Please take a look at the `MODULE.bazel` file in this folder to get an idea how to set up yourself. -With this approach, `rules_ros2` defines a Python 3.10 interpreter and defines the hub with resolved Python deps. If you want a different intepreter and/or you want to extend the Python requirements files with extra deps you might want to use in your monorepo, you'll need to patch `requirements_lock.txt` file and this repo. - -This is the default way for handling external deps since Bazel 7. +With this approach, `rules_ros2` defines a Python 3.14 interpreter and defines the hub with resolved Python deps. +If you want a different intepreter and/or you want to extend the Python requirements files with extra deps you might want to use in your monorepo, you may need to patch `requirements_lock.txt` file of the rules_ros2 repo. If you want to be more explicit and explicitly disable the workspace-based setup, you can add the following lines in your `.bazelrc` file: diff --git a/examples/WORKSPACE b/examples/WORKSPACE index 55793c09..af352c66 100644 --- a/examples/WORKSPACE +++ b/examples/WORKSPACE @@ -32,11 +32,11 @@ py_repositories() python_register_toolchains( name = "rules_ros2_python", - # You must pin the Python version to the one used for rules_ros2_pip_deps_numpy_headers and current_py_cc_headers in rules_ros2. + # You must pin the Python version to one that is compatible to the rules_ros2_pip_deps_numpy_headers and current_py_cc_headers in rules_ros2. # Otherwise you will get errors at runtime (not build time!) like: # ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' # Importing the numpy C-extensions failed. - python_version = "3.10", + python_version = "3.14", ) load("@rules_python//python:pip.bzl", "pip_parse") diff --git a/repositories/private/BUILD.bazel b/repositories/private/BUILD.bazel index 9044ef65..b803093b 100644 --- a/repositories/private/BUILD.bazel +++ b/repositories/private/BUILD.bazel @@ -4,7 +4,6 @@ load("@rules_ros2_resolver_deps//:requirements.bzl", "requirement") compile_pip_requirements( name = "requirements", - python_version = "3.10", requirements_in = ":resolver_requirements.txt", requirements_txt = ":resolver_requirements_lock.txt", tags = ["manual"], @@ -23,7 +22,7 @@ py_binary( "@com_github_mvukov_rules_ros2//repositories:ros2_repositories_impl.bzl", "@ros2//:repos", ], - python_version = "3.10", + python_version = "3.11", deps = [ requirement("aiofile"), requirement("aiohttp"), @@ -38,6 +37,5 @@ py_test( srcs = ["ros2_repo_mappings_tests.py"], data = ["@com_github_mvukov_rules_ros2//repositories:ros2_repo_mappings.yaml"], main = "ros2_repo_mappings_tests.py", - python_version = "3.10", deps = [requirement("pyyaml")], ) diff --git a/repositories/private/resolver_requirements_lock.txt b/repositories/private/resolver_requirements_lock.txt index 6f39887c..c751d9d7 100644 --- a/repositories/private/resolver_requirements_lock.txt +++ b/repositories/private/resolver_requirements_lock.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # bazel run //repositories/private:requirements.update diff --git a/requirements.txt b/requirements.txt index fad99e39..d7476e2b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ catkin_pkg coverage -empy==3.3.* +empy lark-parser -numpy~=1.23 +numpy>2 packaging psutil pytest pytest-cov pyyaml -types-pkg-resources==0.1.3 +types-pkg-resources diff --git a/requirements_lock.txt b/requirements_lock.txt index 84095de9..28278126 100644 --- a/requirements_lock.txt +++ b/requirements_lock.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # bazel run //:python_requirements.update @@ -74,10 +74,6 @@ docutils==0.19 \ empy==3.3.4 \ --hash=sha256:73ac49785b601479df4ea18a7c79bc1304a8a7c34c02b9472cf1206ae88f01b3 # via -r requirements.txt -exceptiongroup==1.0.4 \ - --hash=sha256:542adf9dea4055530d6e1279602fa5cb11dab2395fa650b8674eaec35fc4a828 \ - --hash=sha256:bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec - # via pytest iniconfig==1.1.1 \ --hash=sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3 \ --hash=sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32 @@ -86,43 +82,79 @@ lark-parser==0.12.0 \ --hash=sha256:0eaf30cb5ba787fe404d73a7d6e61df97b21d5a63ac26c5008c78a494373c675 \ --hash=sha256:15967db1f1214013dca65b1180745047b9be457d73da224fcda3d9dd4e96a138 # via -r requirements.txt -numpy==1.26.4 \ - --hash=sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b \ - --hash=sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 \ - --hash=sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20 \ - --hash=sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0 \ - --hash=sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010 \ - --hash=sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a \ - --hash=sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea \ - --hash=sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c \ - --hash=sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 \ - --hash=sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110 \ - --hash=sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be \ - --hash=sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a \ - --hash=sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a \ - --hash=sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 \ - --hash=sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed \ - --hash=sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd \ - --hash=sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c \ - --hash=sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e \ - --hash=sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0 \ - --hash=sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c \ - --hash=sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a \ - --hash=sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b \ - --hash=sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0 \ - --hash=sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6 \ - --hash=sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2 \ - --hash=sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a \ - --hash=sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30 \ - --hash=sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218 \ - --hash=sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5 \ - --hash=sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07 \ - --hash=sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 \ - --hash=sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4 \ - --hash=sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764 \ - --hash=sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef \ - --hash=sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3 \ - --hash=sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via -r requirements.txt packaging==21.3 \ --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \ @@ -231,12 +263,6 @@ six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 # via python-dateutil -tomli==2.0.1 \ - --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ - --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f - # via - # coverage - # pytest types-pkg-resources==0.1.3 \ --hash=sha256:0cb9972cee992249f93fff1a491bf2dc3ce674e5a1926e27d4f0866f7d9b6d9c \ --hash=sha256:834a9b8d3dbea343562fd99d5d3359a726f6bf9d3733bccd2b4f3096fbab9dae diff --git a/ros2/BUILD.bazel b/ros2/BUILD.bazel index a16fe2e7..35f71099 100644 --- a/ros2/BUILD.bazel +++ b/ros2/BUILD.bazel @@ -95,14 +95,14 @@ py_binary( whl_filegroup( name = "numpy_includes", - pattern = "numpy/core/include/numpy", + pattern = "numpy/_core/include/numpy", whl = "@rules_ros2_pip_deps//numpy:whl", ) cc_library( name = "rules_ros2_pip_deps_numpy_headers", hdrs = [":numpy_includes"], - includes = ["numpy_includes/numpy/core/include"], + includes = ["numpy_includes/numpy/_core/include"], visibility = ["//visibility:public"], deps = ["@rules_python//python/cc:current_py_cc_headers"], )