Replace setuptools/bundled-capnproto build with conan-py-build + CMake [looking for feedback]#404
Draft
czoido wants to merge 31 commits into
Draft
Replace setuptools/bundled-capnproto build with conan-py-build + CMake [looking for feedback]#404czoido wants to merge 31 commits into
czoido wants to merge 31 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
pycapnptoconan-py-buildto get some comments and feedback from the project. ThecapnprotoC++ library is fetched from Conan Center Index instead of being downloaded as a tarball fromcapnproto.orgat build time.This is a draft PR for sharing the work to get your thoughts on whether this direction is interesting to the project.
Some notes about the migration:
setup.pypreviously downloadedcapnproto-c++-1.0.1.tar.gzfromcapnproto.orgat build time. Conan now fetches and buildscapnproto/1.0.1from Conan Center Index.capnprotorequires autotools (m4, etc.) to be present on the system. Conan manages these build tools as well.conanfile.py.setup.py+buildutils/removed. ~350 lines of build machinery replaced by a minimalconanfile.pyand a standardCMakeLists.txt.capnp/version.pysimplified. Previously generated dynamically bysetup.py; now it's a static file usingimportlib.metadata.cibuildwheelkeeps driving multi-platform builds with minimal changes.CI results: https://github.com/czoido/pycapnp/actions/runs/27526912439
Any feedback is very welcome!
Thanks a lot 🙂