diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index d72be0d..bf25094 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -17,7 +17,7 @@ jobs: with: fetch-depth: 0 - name: Install uv - uses: astral-sh/setup-uv@v4 + uses: astral-sh/setup-uv@v5 - name: Run pre-commit checks run: uvx pre-commit run --all-files --verbose --show-diff-on-failure test: @@ -31,7 +31,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v4 + uses: astral-sh/setup-uv@v5 with: python-version: ${{ matrix.python-version }} - name: Check out nanobind example repo @@ -40,12 +40,9 @@ jobs: repository: wjakob/nanobind_example path: nanobind_example ref: bazel - - name: Patch nanobind_example stubgen target - run: git apply ${{github.workspace }}/stubgen.patch + - name: Override nanobind_bazel dep with local checkout in MODULE.bazel + run: git apply ${{github.workspace }}/nanobind_bazel_local_override.patch working-directory: ${{ github.workspace }}/nanobind_example - - - name: Override nanobind_bazel pin in MODULE.bazel - run: python fixup_module_bazel.py ${{ github.workspace}}/nanobind_example - name: Build and test nanobind_example on ${{ matrix.os }} # --no-sync is required so that uv does not remove the .so file again. run: | diff --git a/fixup_module_bazel.py b/fixup_module_bazel.py deleted file mode 100644 index 1015f7d..0000000 --- a/fixup_module_bazel.py +++ /dev/null @@ -1,37 +0,0 @@ -""" -Redeclare a dependency on nanobind_bazel by overwriting the content of MODULE.bazel. - -Used in nanobind-bazel CI to test against development versions in pull requests. -""" - -import re -import sys -from pathlib import Path - -# TODO: Support arbitrary paths in the template below -_LOCAL_NANOBIND_BAZEL = """ -bazel_dep(name = "nanobind_bazel", version = "") -local_path_override( - module_name = "nanobind_bazel", - path = "../", -) -""" - - -def main(): - bazel_project = Path(sys.argv[1]) - module_bazel = bazel_project / "MODULE.bazel" - if not module_bazel.exists(): - raise FileNotFoundError(module_bazel) - - content = module_bazel.read_text() - module_bazel.write_text( - re.sub( - r"bazel_dep\(name = \"nanobind_bazel\", version = [\w\".]*\)", - _LOCAL_NANOBIND_BAZEL, - content, - ) - ) - -if __name__ == "__main__": - main() diff --git a/nanobind_bazel_local_override.patch b/nanobind_bazel_local_override.patch new file mode 100644 index 0000000..cc18623 --- /dev/null +++ b/nanobind_bazel_local_override.patch @@ -0,0 +1,29 @@ +diff --git a/MODULE.bazel b/MODULE.bazel +index 7723d4c..a15a36b 100644 +--- a/MODULE.bazel ++++ b/MODULE.bazel +@@ -1,6 +1,10 @@ + module(name = "nanobind_example", version = "0.1.0") + +-bazel_dep(name = "nanobind_bazel", version = "2.4.0") ++bazel_dep(name = "nanobind_bazel", version = "") ++local_path_override( ++ module_name = "nanobind_bazel", ++ path = "../", ++) + bazel_dep(name = "rules_python", version = "1.0.0") + + python = use_extension("@rules_python//python/extensions:python.bzl", "python") +diff --git a/src/BUILD b/src/BUILD +index 5562dca..95e210e 100644 +--- a/src/BUILD ++++ b/src/BUILD +@@ -20,6 +20,6 @@ nanobind_stubgen( + name = "nanobind_example_ext_stubgen", + module = ":nanobind_example_ext", + marker_file = "src/py.typed", +- output_directory = "src", +- recursive = True, ++# output_directory = "src", ++# recursive = True, + ) diff --git a/stubgen.patch b/stubgen.patch deleted file mode 100644 index 727a451..0000000 --- a/stubgen.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/BUILD b/src/BUILD -index 5562dca..95e210e 100644 ---- a/src/BUILD -+++ b/src/BUILD -@@ -20,6 +20,6 @@ nanobind_stubgen( - name = "nanobind_example_ext_stubgen", - module = ":nanobind_example_ext", - marker_file = "src/py.typed", -- output_directory = "src", -- recursive = True, -+# output_directory = "src", -+# recursive = True, - )