-
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add fenics-basix-pybind11-abi output #10
Conversation
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipe:
For recipe:
|
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipe:
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
This is a little trickier than I realized, since the constraint needs to be in the build environment, so it shouldn't have any actual runtime dependencies. |
with run constraint on C compiler version, which changes the pybind11 abi
…nda-forge-pinning 2023.06.21.09.36.35
What we really want is an abi output that becomes a host and runtime dependency, and is versioned. It's not just a run constraint on the compiler (which is required at build-time), it's an actual runtime constraint on the build-time compiler version, otherwise there will be an inappropriate lack of conflict between old builds and new ones (e.g. basix built with gcc 11 and dolfinx build with gcc 12 and vice versa both claim to be compatible, but pybind11 fails in both directions). For example:
|
explodes build matrix (faster builds, more duplicated but identical libbasix published)
…nda-forge-pinning 2023.06.22.04.03.15
avoids the possibility of depending on basix-abi and getting a basix package that doesn't have that abi
So I've gone with skipping the compiler constraint, and relying on packaging tests to catch this, because the package really won't work if this is mismatched and it should be easily tested. As a result, just exporting the abi as a package which:
which should make it impossible for any downstream package (dolfinx) with the abi in a host dependency to install in an env with a basix that doesn't provide that ABI |
tested locally with fenics-dolfinx and seems to work |
this output expresses a runtime constraint on the cxx compiler version, which changes the pybind11 ABI, so that downstream packages won't be built with mismatched compilers, which won't work.
e.g. dolfinx build 101 works, but 102 which upgraded the gcc to 12 doesn't.
related to conda-forge/pybind11-feedstock#79, I think
This update of the compilers may also fix later builds of fenics-dolfinx