diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c17b2bc0..1746b706 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -54,7 +54,7 @@ repos: - types-toml - id: mypy name: mypy 3.7+ on bin/ - files: ^(bin|docs)/.*py$ + files: ^((bin|docs)/.*py|noxfile.py)$ args: ["--python-version=3.7", "--scripts-are-modules"] additional_dependencies: - packaging>=21.0 diff --git a/README.md b/README.md index b26b38da..3c9611c6 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ Here are some repos that use cibuildwheel. | [psutil][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Cross-platform lib for process and system monitoring in Python | | [scikit-image][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Image processing library. Uses cibuildwheel to build and test a project that uses Cython with platform-native code. | | [twisted-iocpsupport][] | ![github icon][] | ![windows icon][] | A submodule of Twisted that hooks into native C APIs using Cython. | +| [cmake][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. | | [websockets][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Library for building WebSocket servers and clients. Mostly written in Python, with a small C 'speedups' extension module. | | [pyzmq][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python bindings for zeromq, the networking library. Uses Cython and CFFI. | | [aiortc][] | ![github icon][] | ![apple icon][] ![linux icon][] | WebRTC and ORTC implementation for Python using asyncio. | @@ -190,6 +191,7 @@ Here are some repos that use cibuildwheel. | [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy | | [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy | | [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. | +| [ninja][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. | | [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. | | [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 | | [Imagecodecs (fork)][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] | Over 20 external dependencies in compiled libraries, custom docker image, `libomp`, `openblas` and `install_name_tool` for macOS. | @@ -204,6 +206,7 @@ Here are some repos that use cibuildwheel. [psutil]: https://github.com/giampaolo/psutil [scikit-image]: https://github.com/scikit-image/scikit-image [twisted-iocpsupport]: https://github.com/twisted/twisted-iocpsupport +[cmake]: https://github.com/scikit-build/cmake-python-distributions [websockets]: https://github.com/aaugustin/websockets [pyzmq]: https://github.com/zeromq/pyzmq [aiortc]: https://github.com/aiortc/aiortc @@ -249,6 +252,7 @@ Here are some repos that use cibuildwheel. [pyjet]: https://github.com/scikit-hep/pyjet [numpythia]: https://github.com/scikit-hep/numpythia [polaroid]: https://github.com/daggy1234/polaroid +[ninja]: https://github.com/scikit-build/ninja-python-distributions [GSD]: https://github.com/glotzerlab/gsd [pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example [Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build @@ -267,64 +271,66 @@ Here are some repos that use cibuildwheel. [apple icon]: docs/data/readme_icons/apple.svg [linux icon]: docs/data/readme_icons/linux.svg - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/docs/data/projects.yml b/docs/data/projects.yml index dc390ce8..e21af4b5 100644 --- a/docs/data/projects.yml +++ b/docs/data/projects.yml @@ -363,3 +363,16 @@ gh: LAMDA-NJU/Deep-Forest ci: [github] os: [apple, linux, windows] + +- name: cmake + gh: scikit-build/cmake-python-distributions + stars: Kitware/CMake + ci: [github, travisci] + os: [apple, linux, windows] + notes: Multitagged binary builds for all supported platforms, using cibw 2 config configuration. + +- name: ninja + gh: scikit-build/ninja-python-distributions + ci: [github, travisci] + os: [apple, linux, windows] + notes: Multitagged binary builds for all supported platforms, using cibw 2 config configuration. diff --git a/noxfile.py b/noxfile.py index 1ed4959a..211cceb7 100644 --- a/noxfile.py +++ b/noxfile.py @@ -12,7 +12,7 @@ DIR = Path(__file__).parent.resolve() @nox.session -def tests(session): +def tests(session: nox.Session) -> None: """ Run the unit and regular tests. """ @@ -26,16 +26,16 @@ def tests(session): @nox.session -def lint(session): +def lint(session: nox.Session) -> None: """ Run the linter. """ session.install("pre-commit") - session.run("pre-commit", "run", "--all-files") + session.run("pre-commit", "run", "--all-files", *session.posargs) @nox.session(python=PYTHON_ALL_VERSIONS) -def update_constraints(session): +def update_constraints(session: nox.Session) -> None: """ Update the dependencies inplace. """ @@ -44,7 +44,7 @@ def update_constraints(session): @nox.session -def update_pins(session): +def update_pins(session: nox.Session) -> None: """ Update the python and docker pins version inplace. """ @@ -54,16 +54,22 @@ def update_pins(session): @nox.session -def update_proj(session): +def update_proj(session: nox.Session) -> None: """ Update the README inplace. """ session.install("-e", ".[bin]") - session.run("python", "bin/projects.py", "docs/data/projects.yml", "--readme=README.md") + session.run( + "python", + "bin/projects.py", + "docs/data/projects.yml", + "--readme=README.md", + *session.posargs, + ) @nox.session -def docs(session): +def docs(session: nox.Session) -> None: """ Build the docs. """ @@ -73,13 +79,13 @@ def docs(session): if "serve" in session.posargs: session.run("mkdocs", "serve") else: - print("Unrecognized args, use 'serve'") + session.error("Unrecognized args, use 'serve'") else: session.run("mkdocs", "build") @nox.session -def build(session): +def build(session: nox.Session) -> None: """ Build an SDist and wheel. """