{{ message }}
Replace setuptools build with conan-py-build + CMake [looking for feedback]#461
Draft
czoido wants to merge 3 commits into
Draft
Replace setuptools build with conan-py-build + CMake [looking for feedback]#461czoido wants to merge 3 commits into
czoido wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Hi from the Conan team!
We recently released conan-py-build, a PEP 517 build backend that uses Conan to manage C/C++ dependencies, and we're testing it on several popular Python extensions that we think could benefit from it.
Here's the launch blog post: https://blog.conan.io/cpp/conan/python/2026/05/05/Introducing-conan-py-build.html
And the repo and docs: https://github.com/conan-io/conan-py-build · https://conan-py-build.conan.io/
We wanted to share this port of
py-tree-sittertoconan-py-buildto get some comments and feedback from the project. Thetree-sitterC library is fetched from Conan Center Index instead of a git submodule.Also, the CI workflows have a few tweaks for testing in our fork, but just ignore those, they wouldn't be part of a real PR.
Some notes about the migration:
No submodule. The
tree-sitterC library is fetched by Conan at build time.Explicit, versioned C dependency. Conan resolves
tree-sitter/<version>from Conan Center Index. Bumping the C library is a one-line change inpyproject.toml.Standard CMake build.
CMakeLists.txtis a plain CMake project.Same CI workflow.
cibuildwheelkeeps driving the multi-platform builds with minimal changes. All 7 platforms pass (linux x86_64/aarch64, musllinux x86_64, macOS arm64/x86_64, Windows amd64/arm64).Equivalent wheels. We compared the output against the 0.25.1 PyPI release file-by-file across all platforms. The only differences are cosmetic metadata.
CI results:
conan-py-build(0.26.9)conan-py-build-v0.25.1(vs PyPI 0.25.1)Any feedback is very welcome
Thanks a lot! 🙂