diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7fb18be..21adfc5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,7 +27,7 @@ repos: - id: test name: Run all tests # reinstall genmetaballs to rebuild C++/CUDA code, then run tests - entry: bash -c "pixi reinstall genmetaballs && pixi run test" + entry: pixi run test language: system pass_filenames: false always_run: true diff --git a/pixi.lock b/pixi.lock index d030239..aba1a11 100644 --- a/pixi.lock +++ b/pixi.lock @@ -1301,7 +1301,7 @@ packages: - pypi: ./ name: genmetaballs version: 0.0.1 - sha256: 98020d76b8c478b6d4d9d25d5b12d44e73c6640bda817f9c35ddcfe88e14c15a + sha256: ff5808c9ff250150d673af4cfc9f137b1637e7baf403f844625c9c5494d9b360 requires_dist: - numpy>=2.3.4,<3 - jax[cuda12]>=0.8.0,<0.9 diff --git a/pyproject.toml b/pyproject.toml index d5647cb..4539c1d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ ninja = "*" scikit-build-core = "*" nanobind = "*" gtest = ">=1.17.0,<2" -clang-tools = ">=18,<20" # Includes clang-format and clang-tidy +clang-tools = ">=18,<20" # Includes clang-format and clang-tidy mesalib = ">=25.0.5,<26" [tool.pixi.pypi-dependencies] @@ -47,10 +47,15 @@ genmetaballs = { path = ".", editable = true } ruff = ">=0.8.0" pre-commit = ">=3.0.0" +[tool.pixi.pypi-options] +# Disable build isolation for genmetaballs to allow scikit-build to find cmake and other build tools +# See https://github.com/scikit-build/scikit-build-core/issues/1112#issuecomment-3025463521 +no-build-isolation = ["genmetaballs"] + [tool.pixi.tasks] ctest = "ctest --test-dir build" pytest = "pytest" -test = { depends-on = ["ctest", "pytest"] } +test = { depends-on = ["pytest", "ctest"] } # Simple lint/format/fix commands (C++/CUDA + Python) format = { cmd = "scripts/format.sh" } lint = { cmd = "scripts/lint.sh" } @@ -66,6 +71,7 @@ wheel.py-api = "cp313" # Or your Python version wheel.packages = ["genmetaballs/src/genmetaballs"] # use a persistent build directory to speed up rebuild & testing build-dir = "build" +editable.rebuild = true [dependency-groups] dev = ["pytest"] @@ -86,20 +92,20 @@ line-ending = "auto" [tool.ruff.lint] select = [ - "E", # pycodestyle errors - "W", # pycodestyle warnings - "F", # pyflakes - "I", # isort - "B", # flake8-bugbear - "C4", # flake8-comprehensions - "UP", # pyupgrade + "E", # pycodestyle errors + "W", # pycodestyle warnings + "F", # pyflakes + "I", # isort + "B", # flake8-bugbear + "C4", # flake8-comprehensions + "UP", # pyupgrade ] ignore = [ - "E501", # line too long (handled by formatter) - "B008", # do not perform function calls in argument defaults + "E501", # line too long (handled by formatter) + "B008", # do not perform function calls in argument defaults ] [tool.ruff.lint.isort] known-first-party = ["genmetaballs"] [tool.pixi.activation.env] -PYOPENGL_PLATFORM = "osmesa" \ No newline at end of file +PYOPENGL_PLATFORM = "osmesa"