diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..be006de --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +# Keep GitHub Actions up to date with GitHub's Dependabot... +# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot +# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + groups: + github-actions: + patterns: + - "*" # Group all Actions updates into a single larger pull request + schedule: + interval: weekly diff --git a/.github/workflows/amd64_linux_bazel.yml b/.github/workflows/amd64_linux_bazel.yml index 00e43cd..82799d9 100644 --- a/.github/workflows/amd64_linux_bazel.yml +++ b/.github/workflows/amd64_linux_bazel.yml @@ -3,70 +3,72 @@ name: amd64 Linux Bazel on: [push, pull_request, workflow_dispatch] +concurrency: + group: ${{github.workflow}}-${{github.ref}} + cancel-in-progress: true + # Building using the github runner environement directly. jobs: native: + name: Linux•Bzl${{matrix.bazel.version}}•C++${{matrix.cpp.version}}•Py${{matrix.python.version}} + runs-on: ubuntu-latest strategy: + fail-fast: false matrix: bazel: [ - {compilation_mode: opt}, - {compilation_mode: dbg}, + #{version: "7.x"}, + {version: "8.x"}, + {version: "9.x"}, ] cpp: [ - {version: 14, flags: "-std=c++14"}, {version: 17, flags: "-std=c++17"}, - {version: 20, flags: "-std=c++20"}, + #{version: 20, flags: "-std=c++20"}, ] python: [ - {version: '3.11'}, + {version: '3.10'}, + #{version: '3.11'}, + {version: '3.12'}, + #{version: '3.13'}, + {version: '3.14'}, ] - exclude: - # only test `-c dbg` build with C++17 - - cpp: {version: 14} - bazel: {compilation_mode: dbg} - - cpp: {version: 20} - bazel: {compilation_mode: dbg} - fail-fast: false - name: Linux•Bazel(${{ matrix.bazel.compilation_mode }})•C++${{ matrix.cpp.version }}•Python${{ matrix.python.version }} - runs-on: ubuntu-latest + env: + USE_BAZEL_VERSION: ${{matrix.bazel.version}} steps: - - uses: actions/checkout@v4 - - name: Check Java - run: java -version + - uses: actions/checkout@v7 + - uses: bazel-contrib/setup-bazel@0.19.0 + with: + bazelisk-cache: true + disk-cache: ${{github.workflow}} + repository-cache: true + - name: Check Bazel + run: bazel version - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v7 with: - python-version: ${{ matrix.python.version }} + python-version: ${{matrix.python.version}} - name: Check Python run: | python --version python -m platform - - uses: bazel-contrib/setup-bazel@0.8.4 - with: - bazelisk-cache: true - disk-cache: ${{ github.workflow }} - repository-cache: true - - name: Check Bazel - run: bazel version - name: Build run: > bazel build - -c ${{ matrix.bazel.compilation_mode }} - --cxxopt=${{ matrix.cpp.flags }} --host_cxxopt=${{ matrix.cpp.flags }} + --config=ci + --@rules_python//python/config_settings:python_version=${{matrix.python.version}} + --cxxopt=${{matrix.cpp.flags}} --host_cxxopt=${{ matrix.cpp.flags }} --subcommands=pretty_print - --enable_bzlmod //... - name: Test run: > bazel test - -c ${{ matrix.bazel.compilation_mode }} - --cxxopt=${{ matrix.cpp.flags }} --host_cxxopt=${{ matrix.cpp.flags }} + --config=ci + --@rules_python//python/config_settings:python_version=${{matrix.python.version}} + --cxxopt=${{matrix.cpp.flags}} --host_cxxopt=${{ matrix.cpp.flags }} --subcommands=pretty_print - --enable_bzlmod //... amd64_linux_bazel: runs-on: ubuntu-latest needs: native steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 diff --git a/.gitignore b/.gitignore index 9e731ea..c803f26 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /bazel-* +/MODULE.bazel.lock /build /tmp_build diff --git a/BUILD b/BUILD new file mode 100644 index 0000000..997f839 --- /dev/null +++ b/BUILD @@ -0,0 +1,7 @@ +exports_files(["LICENSE"]) + +filegroup( + name = "license", + srcs = ["LICENSE"], + visibility = ["//visibility:public"], +) diff --git a/MODULE.bazel b/MODULE.bazel index 281639e..525a414 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -16,12 +16,11 @@ bazel_dep(name = "pybind11_bazel", version = "3.0.0") #### DEV ONLY DEPENDENCIES BELOW HERE #### SUPPORTED_PYTHON_VERSIONS = [ + "3.14", "3.13", "3.12", "3.11", "3.10", - "3.9", - "3.8", ] DEFAULT_PYTHON = "3.12" diff --git a/pybind11_abseil/BUILD b/pybind11_abseil/BUILD index 9f073e1..f427307 100644 --- a/pybind11_abseil/BUILD +++ b/pybind11_abseil/BUILD @@ -1,8 +1,12 @@ # Pybind11 bindings for the Abseil C++ Common Libraries - load("@pybind11_bazel//:build_defs.bzl", "pybind_extension", "pybind_library") load("@rules_cc//cc:cc_library.bzl", "cc_library") +alias( + name = "license", + actual = "//:license", +) + package( default_visibility = ["//visibility:public"], ) diff --git a/pybind11_abseil/requirements/BUILD b/pybind11_abseil/requirements/BUILD index 4567a90..21e9b94 100644 --- a/pybind11_abseil/requirements/BUILD +++ b/pybind11_abseil/requirements/BUILD @@ -1,13 +1,25 @@ load("@python//3.10:defs.bzl", compile_pip_requirements_3_10 = "compile_pip_requirements") load("@python//3.11:defs.bzl", compile_pip_requirements_3_11 = "compile_pip_requirements") load("@python//3.12:defs.bzl", compile_pip_requirements_3_12 = "compile_pip_requirements") -load("@python//3.8:defs.bzl", compile_pip_requirements_3_8 = "compile_pip_requirements") -load("@python//3.9:defs.bzl", compile_pip_requirements_3_9 = "compile_pip_requirements") +load("@python//3.13:defs.bzl", compile_pip_requirements_3_13 = "compile_pip_requirements") +load("@python//3.14:defs.bzl", compile_pip_requirements_3_14 = "compile_pip_requirements") package( default_visibility = ["//visibility:private"], ) +compile_pip_requirements_3_14( + name = "requirements_3_14", + src = "requirements.in", + requirements_txt = "requirements_lock_3_14.txt", +) + +compile_pip_requirements_3_13( + name = "requirements_3_13", + src = "requirements.in", + requirements_txt = "requirements_lock_3_13.txt", +) + compile_pip_requirements_3_12( name = "requirements_3_12", src = "requirements.in", @@ -25,15 +37,3 @@ compile_pip_requirements_3_10( src = "requirements.in", requirements_txt = "requirements_lock_3_10.txt", ) - -compile_pip_requirements_3_9( - name = "requirements_3_9", - src = "requirements.in", - requirements_txt = "requirements_lock_3_9.txt", -) - -compile_pip_requirements_3_8( - name = "requirements_3_8", - src = "requirements.in", - requirements_txt = "requirements_lock_3_8.txt", -) diff --git a/pybind11_abseil/requirements/requirements_lock_3_13.txt b/pybind11_abseil/requirements/requirements_lock_3_13.txt new file mode 100644 index 0000000..9906627 --- /dev/null +++ b/pybind11_abseil/requirements/requirements_lock_3_13.txt @@ -0,0 +1,56 @@ +# +# This file is autogenerated by pip-compile with Python 3.13 +# by the following command: +# +# bazel run //pybind11_abseil/requirements:requirements_3_13.update +# +absl-py==2.5.0 \ + --hash=sha256:0c996f25c0490700fadabe6351630f6111534fa0ae252cc6d2014ea3b141135f \ + --hash=sha256:0f17b89f2a4eaaedc4f28c622998aa690564b3012a396a4ffad0821007fe03ba + # via -r pybind11_abseil/requirements/requirements.in +numpy==2.5.1 \ + --hash=sha256:08d60c810432eb83360958dea0999ac4cfb94531ea8efcbf0b7f277c2068aeb2 \ + --hash=sha256:09e9bfd8d2cf479c7d174804fb3811c53a8e9f20a37444008606b57d6b7a826d \ + --hash=sha256:0bfebd8695f9863592fe744be833a258120b14a9f39da255e8aa8fade2c0ddd1 \ + --hash=sha256:17a25e09640602e10bc8de0e6fa2b3fd68eedd84ba6d7842dc8f32f9ab87bd0b \ + --hash=sha256:1c6759f538fb912fc46de0a6b1758ccf7b57bc7c7ebebc23974fdac3de8db0cd \ + --hash=sha256:224ca51130ef7da85bea2191625181cb4f337f9cb64b471f10c1a12aa8b60077 \ + --hash=sha256:24d0eb82c0541d3415a33425db64ae439dffccd7b4dbcb30e7c35120205c506a \ + --hash=sha256:2ae0ca40bcb22d6ba59c1dfd5446f49940b0f2d821fde133f10dda11f816b84e \ + --hash=sha256:2c889b56fe48b1018f764b0eec8df59ab654e9148aa91faa12596043500de277 \ + --hash=sha256:30b44a6b53a7ae63c54c089a8726e5563ed302716c5b7ccc85afade40b0e7ff6 \ + --hash=sha256:32985c896d897419ef8da6917872d80b78ad0ea26d85b23245c7366ffde76d75 \ + --hash=sha256:3935f3b419b244a02732676fa5317a9193cc596a4c0646db07e5b421229ac9f7 \ + --hash=sha256:4939237038ada79308dda3204ac6462df056b5672b2e25db1149cf873668b3e1 \ + --hash=sha256:4b4ff1608417eb7a59da7b967bbb798cacfe071d2caf526a24281cd562072ed9 \ + --hash=sha256:54ad769f17bc2d833b620851989f62054fb9ab93c969d9e1dc3c8e3d56beea21 \ + --hash=sha256:59fda5e192b570217ec2580c96f00e9a7e12ef6866a900eb089b62c1a32545ca \ + --hash=sha256:5a4c988b38d261deeeaad9954e3deb091ad905c94e8bb6708654ef1d97f286b0 \ + --hash=sha256:5a6db61f9aaa57e369905c67d852045d3c4f7126405b29d09b19dec118e9c9cb \ + --hash=sha256:6165343f81b56ef8f514f396989e529b61d9dc709b99421b07e9f3e698e2287d \ + --hash=sha256:61ac47e772e6b8ea489e1d2f441a34c5c3ac17327e7ce294cbdf535795ad4e75 \ + --hash=sha256:6c3fe51bc6a16453d452997053454f309e8e0ed7b42d6b361ce4ac8c32913d74 \ + --hash=sha256:6eab239876581b2b3c5a242281b6007bbdbcd1c7085d7709bb57c5929b11e6bf \ + --hash=sha256:78798bd5b9ad744056af8efa90e3b9ddaa53272a0848a483084a1cc0a13b2dc0 \ + --hash=sha256:7c786fe9a5bbe360022e584c5a34cf6b54265c71bd7ec8ac3d8fec38968071f8 \ + --hash=sha256:83ce9c80d5b521b0d77ddcbe5447c218d247929b6cc056ca5351342accfff0af \ + --hash=sha256:9726558e8db4a5bf7929a70ae50f63abda4daf0efe810e3bfbab95976f75fc1a \ + --hash=sha256:99d5095fa265a0c4152e7bb12759e14381ef5496152f1ce58f44bdf55c44beb4 \ + --hash=sha256:a33276be12fa045805f477f22482088b66bb758ffbe89a9d21457de863a32e22 \ + --hash=sha256:a48a113e6afea91f5608793bafa7ef2ad481fefbda87ec5069f483de61cb9fa3 \ + --hash=sha256:ab451b59c5643c570974c43aef780703ef1d3b4965d2be07afd530615a9358d1 \ + --hash=sha256:ab84dc6b074fa881cae55bea94cc4f68e285181ba7f32497bf7dee6b1496165b \ + --hash=sha256:ab87a91b3cc3382b8956095bd8f95e00cf679bb81554339be1a2ba404a1473c1 \ + --hash=sha256:c12afb53450fa976d4c681c50a7423729a4c51c0465ed9f32b8a9cabbc472373 \ + --hash=sha256:caf3e317d33d60c37986b452613f4ab51246d0691350c03d0cb4a898627f4a95 \ + --hash=sha256:dc932a65ded7ce9013d120845a2514dcccb1a67bfc8deb8d37633762951904a6 \ + --hash=sha256:e68d8dd1e7eba712948f2053a29ec86917bc70ba1358df869d9f06649ef9cf09 \ + --hash=sha256:e824c2acf8862052246be5a44c15da1777940c60d010dd2aab897824d9c430f9 \ + --hash=sha256:e8c11c405efc5ff6816d5983c96cdfa215bab3428961243af3ff59b228490438 \ + --hash=sha256:efd736408cc97c79b9e6917338dfc8f06013b2274f992e96b1d9a81a71e2a2c2 \ + --hash=sha256:f089d7b00756190aacf1f5d34bdf38c3c430ac82b4f868f8cede73380460fce7 \ + --hash=sha256:f2479a47f8d5932d1718168a681ad6e536a9df484c83cfcf9de365e164537ace \ + --hash=sha256:f7119ebff1a9829e9f431a4f9d28e703023bb6b9fe7c8f724467dbfc27c94ab3 \ + --hash=sha256:f7d60026c0bdb1380e83bfa7a0419c4577ee4b9a08880afcb6dadeb74c649fa2 \ + --hash=sha256:f7feb014281029e628ba2d5a007407443b06e418b6fe451d1e2adcbc8eba0107 + # via -r pybind11_abseil/requirements/requirements.in diff --git a/pybind11_abseil/requirements/requirements_lock_3_14.txt b/pybind11_abseil/requirements/requirements_lock_3_14.txt new file mode 100644 index 0000000..8a77180 --- /dev/null +++ b/pybind11_abseil/requirements/requirements_lock_3_14.txt @@ -0,0 +1,56 @@ +# +# This file is autogenerated by pip-compile with Python 3.14 +# by the following command: +# +# bazel run //pybind11_abseil/requirements:requirements_3_14.update +# +absl-py==2.5.0 \ + --hash=sha256:0c996f25c0490700fadabe6351630f6111534fa0ae252cc6d2014ea3b141135f \ + --hash=sha256:0f17b89f2a4eaaedc4f28c622998aa690564b3012a396a4ffad0821007fe03ba + # via -r pybind11_abseil/requirements/requirements.in +numpy==2.5.1 \ + --hash=sha256:08d60c810432eb83360958dea0999ac4cfb94531ea8efcbf0b7f277c2068aeb2 \ + --hash=sha256:09e9bfd8d2cf479c7d174804fb3811c53a8e9f20a37444008606b57d6b7a826d \ + --hash=sha256:0bfebd8695f9863592fe744be833a258120b14a9f39da255e8aa8fade2c0ddd1 \ + --hash=sha256:17a25e09640602e10bc8de0e6fa2b3fd68eedd84ba6d7842dc8f32f9ab87bd0b \ + --hash=sha256:1c6759f538fb912fc46de0a6b1758ccf7b57bc7c7ebebc23974fdac3de8db0cd \ + --hash=sha256:224ca51130ef7da85bea2191625181cb4f337f9cb64b471f10c1a12aa8b60077 \ + --hash=sha256:24d0eb82c0541d3415a33425db64ae439dffccd7b4dbcb30e7c35120205c506a \ + --hash=sha256:2ae0ca40bcb22d6ba59c1dfd5446f49940b0f2d821fde133f10dda11f816b84e \ + --hash=sha256:2c889b56fe48b1018f764b0eec8df59ab654e9148aa91faa12596043500de277 \ + --hash=sha256:30b44a6b53a7ae63c54c089a8726e5563ed302716c5b7ccc85afade40b0e7ff6 \ + --hash=sha256:32985c896d897419ef8da6917872d80b78ad0ea26d85b23245c7366ffde76d75 \ + --hash=sha256:3935f3b419b244a02732676fa5317a9193cc596a4c0646db07e5b421229ac9f7 \ + --hash=sha256:4939237038ada79308dda3204ac6462df056b5672b2e25db1149cf873668b3e1 \ + --hash=sha256:4b4ff1608417eb7a59da7b967bbb798cacfe071d2caf526a24281cd562072ed9 \ + --hash=sha256:54ad769f17bc2d833b620851989f62054fb9ab93c969d9e1dc3c8e3d56beea21 \ + --hash=sha256:59fda5e192b570217ec2580c96f00e9a7e12ef6866a900eb089b62c1a32545ca \ + --hash=sha256:5a4c988b38d261deeeaad9954e3deb091ad905c94e8bb6708654ef1d97f286b0 \ + --hash=sha256:5a6db61f9aaa57e369905c67d852045d3c4f7126405b29d09b19dec118e9c9cb \ + --hash=sha256:6165343f81b56ef8f514f396989e529b61d9dc709b99421b07e9f3e698e2287d \ + --hash=sha256:61ac47e772e6b8ea489e1d2f441a34c5c3ac17327e7ce294cbdf535795ad4e75 \ + --hash=sha256:6c3fe51bc6a16453d452997053454f309e8e0ed7b42d6b361ce4ac8c32913d74 \ + --hash=sha256:6eab239876581b2b3c5a242281b6007bbdbcd1c7085d7709bb57c5929b11e6bf \ + --hash=sha256:78798bd5b9ad744056af8efa90e3b9ddaa53272a0848a483084a1cc0a13b2dc0 \ + --hash=sha256:7c786fe9a5bbe360022e584c5a34cf6b54265c71bd7ec8ac3d8fec38968071f8 \ + --hash=sha256:83ce9c80d5b521b0d77ddcbe5447c218d247929b6cc056ca5351342accfff0af \ + --hash=sha256:9726558e8db4a5bf7929a70ae50f63abda4daf0efe810e3bfbab95976f75fc1a \ + --hash=sha256:99d5095fa265a0c4152e7bb12759e14381ef5496152f1ce58f44bdf55c44beb4 \ + --hash=sha256:a33276be12fa045805f477f22482088b66bb758ffbe89a9d21457de863a32e22 \ + --hash=sha256:a48a113e6afea91f5608793bafa7ef2ad481fefbda87ec5069f483de61cb9fa3 \ + --hash=sha256:ab451b59c5643c570974c43aef780703ef1d3b4965d2be07afd530615a9358d1 \ + --hash=sha256:ab84dc6b074fa881cae55bea94cc4f68e285181ba7f32497bf7dee6b1496165b \ + --hash=sha256:ab87a91b3cc3382b8956095bd8f95e00cf679bb81554339be1a2ba404a1473c1 \ + --hash=sha256:c12afb53450fa976d4c681c50a7423729a4c51c0465ed9f32b8a9cabbc472373 \ + --hash=sha256:caf3e317d33d60c37986b452613f4ab51246d0691350c03d0cb4a898627f4a95 \ + --hash=sha256:dc932a65ded7ce9013d120845a2514dcccb1a67bfc8deb8d37633762951904a6 \ + --hash=sha256:e68d8dd1e7eba712948f2053a29ec86917bc70ba1358df869d9f06649ef9cf09 \ + --hash=sha256:e824c2acf8862052246be5a44c15da1777940c60d010dd2aab897824d9c430f9 \ + --hash=sha256:e8c11c405efc5ff6816d5983c96cdfa215bab3428961243af3ff59b228490438 \ + --hash=sha256:efd736408cc97c79b9e6917338dfc8f06013b2274f992e96b1d9a81a71e2a2c2 \ + --hash=sha256:f089d7b00756190aacf1f5d34bdf38c3c430ac82b4f868f8cede73380460fce7 \ + --hash=sha256:f2479a47f8d5932d1718168a681ad6e536a9df484c83cfcf9de365e164537ace \ + --hash=sha256:f7119ebff1a9829e9f431a4f9d28e703023bb6b9fe7c8f724467dbfc27c94ab3 \ + --hash=sha256:f7d60026c0bdb1380e83bfa7a0419c4577ee4b9a08880afcb6dadeb74c649fa2 \ + --hash=sha256:f7feb014281029e628ba2d5a007407443b06e418b6fe451d1e2adcbc8eba0107 + # via -r pybind11_abseil/requirements/requirements.in diff --git a/pybind11_abseil/tests/BUILD b/pybind11_abseil/tests/BUILD index 30c8863..4f09b7a 100644 --- a/pybind11_abseil/tests/BUILD +++ b/pybind11_abseil/tests/BUILD @@ -1,7 +1,8 @@ # Tests and examples for pybind11_abseil. - load("@pybind11_bazel//:build_defs.bzl", "pybind_extension", "pybind_library") load("@pypi//:requirements.bzl", "requirement") +load("@rules_python//python:py_library.bzl", "py_library") +load("@rules_python//python:py_test.bzl", "py_test") package(default_applicable_licenses = ["//pybind11_abseil:license"])