-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Fix Boost modules with libraries #15197
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
base: master
Are you sure you want to change the base?
Conversation
|
Another approach would be to special-case Boost.system instead of Boost.python. This might work better since the list of library-modules-that-became-header-only should be short and not change very fast. |
It is a bit ironic you say that, given your PR doesn't work on Arch (or macOS), and Fedora has boost 1.83, Gentoo has boost 1.88, and Ubuntu has boost 1.88 as well. So both places boost 1.89 is installed in CI, the
is what breaks the CI. (It is expected that it would break the CI. The CI upgrading to boost 1.89 and breaking, is the original reason these changes were originally made.) And...
That would, I believe, be a more accurate summary of "As discussed in issue #15154" than claiming the summary "these changes don't work". Yes, I acknowledge that the real difference is that some people think issue #15154 proves one thing, while others believe it proves something else at a 90 degree angle. ... But... at the end of the day, CI doesn't lie. It can't lie, because it's the arbiter of truth: CI can't be made to start failing, because that makes CI worthless for detecting anything else, which means it is impossible to merge any PRs at all as it becomes exceedingly difficult to tell what changes are valid to make. This PR cannot be merged until CI passes. If someone were to merge it anyway, it will be unconditionally reverted directly from git master pursuant to the contributing docs at https://mesonbuild.com/Contributing.html#a-green-ci-run-is-mandatory-for-merging Please try to update this PR to use the method that we already discussed in the issue. In your words:
And in my words:
Given that this was already discussed before the PR was opened, I cannot at all see us accepting a simple revert "pending a future fix". Especially if the PR description agrees that it's not a real fix and calls itself "temporary". Even if the contribution docs didn't prevent a simple revert from being merged, the goal is to get the change into a release, not into git. And I won't backport a change into a stable release that fixes one use case and breaks another -- if it's going to be broken anyway, better that the shape of the breakage itself stays the same until there's a real fix, rather than toggling back and forth. At least then one could predictably pin their version. And that means there would be no urgency to merge a simple revert, and we should first try to figure out a proper fix. I would love to see this fixed, and I would be happy to backport it to stable. But, we do need that future fix to be the one that gets merged. |
|
I'll plan to work on that approach as I have time. However, it seems part of the problem is that
So, there are two types of failures here, and the current tests only check for one kind of failure. So, yes, CI can definitely lie. (Or, more accurately, CI doesn't directly speak -- it must be interpreted.) That said, I think the approach I outlined can solve my problem and also pass the existing tests. |
|
Thanks, looking forward to reviewing it. Again, I agree the current situation isn't great. And yes -- adding more tests to cover more cases is always good. Removing tests once they start failing is not so good, though it can technically happen if for some reason it's deemed there is no other choice, and has the advantage of not rendering status checks useless overall. :D |
This PR suggests that meson temporarily revert some changes to the Boost dependency, pending a future fix.
As discussed in issue #15154, these changes don't work on Debian, Ubuntu, Red Hat, Arch, Gentoo, and Alpine. That is a lot of Linux distributions.
With this PR, some systems fail to configure until
meson.buildis edited. Without the PR, some systems incorrectly configure and then fail to build until some packages are installed. Neither is great -- what to do? 🤷♂️