-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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 approvaltests.cpp 10.12.0 #7213
Add approvaltests.cpp 10.12.0 #7213
Conversation
This comment has been minimized.
This comment has been minimized.
This build is failing, but not due to anything in the PR… I think it’s likely to be due to a change in the Conan CI config? boost 1.72.0 is missing for one config: https://c3i.jfrog.io/c3i/misc/logs/pr/7213/1-configs/macos-m1-clang/approvaltests.cpp/10.12.0//5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9-test.txt … we didn’t change anything in that area…. I’ve asked about it in the Conan channel on #include <C++> Discord. |
yes, there is an issue that right now boost doesn't build for ARM due to the bug in CMake version. PR #7146 addresses that, but it's not merged yet (still needs some approvals).
|
okay, #7146 has been merged, so packages should be there. I've re-triggered the CI. |
This comment has been minimized.
This comment has been minimized.
it seems to be using some x86_64 ASM even if compiling for ARM?
if so, please disable armv8 builds as suggested in the comment above: #7213 (comment) |
Co-Authored-By: Clare Macrae <github@cfmacrae.fastmail.co.uk>
This comment has been minimized.
This comment has been minimized.
Looks like cancelled builds are interpreted by conan-center-bot as successfully. |
right, seems to be another bug! thanks for spotting! |
Is there anything we need to do? |
You need to add |
Thanks... Our release process tests that the PR builds... we didn't think to do that with the earlier change today - but I did then test the most recent commit, so hopefully it will all be good now. |
we recently added some changes which enhanced test coverage for header only packages. |
This comment has been minimized.
This comment has been minimized.
This is a fluke. 2 things you can do: |
Thanks @madebr - I cannot close and re-open the PR as it was created by the other co-author of approval tests, and we have finished pairing for today... So please could someone on the Conan team close and re-open this? |
I'm curious... Why would the merging of boost 1.77.0 cause builds here to fail? |
#6929 caused boost packages of all versions to be rebuilt. |
HUGE THANKS for this information - much appreciated! And I've done that... |
This comment has been minimized.
This comment has been minimized.
did doctest change their interfaces? 🤔 |
checking again, it's only old versions of |
Thank you... I am feeling a little bit unlucky with this PR - they aren't usually this hard!!! :-) |
yeah, really a bad timing, we upgraded several things in infrastructure which caused previously green builds to fail. |
I would like to ask the conan team to see if a way can be found to de-couple the “contributor submitting a PR for an update” from “the contributor discovering the existing build got broken (or a pre-existing limitation was exposed) because of improvements to infrastructure”… For example, perhaps have a weekly job that re-builds every recipe on the latest infra - and somehow capture which ones failed and notify maintainers… That way, we could have had separate PRs for “get this library working on new platforms” and “update this library for a new release…” By the current coupling together of “only find out your previously working recipe is broken when you try to add a new release”, I feel it becomes much harder to deal with… |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps this is a candidate for remove older versions?
if self.options.with_gtest: | ||
self.requires("gtest/1.10.0") | ||
if self.options.with_doctest: | ||
self.requires("doctest/2.3.6") | ||
self.requires("doctest/2.4.6") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
self.requires("doctest/2.4.6") | |
self.requires("doctest/2.4.6" if tools.Version(self.version) >= "8.2.0" else "doctest/2.3.6") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you very much. I thought about a condition like that, but was assuming that the older versions would still fail the CI for armv8 (or whatever the problem platform was).
Do you mean to drop support for older versions of ApprovalTests.cpp @prince-chrismc - I didn't know it was possible to do that...
If so, it solves all these CI problems in stroke, without making the recipe more complex, so is a great idea...
Things I have found from experimenting on my Mac: doctest/2.3.6
doctest/2.4.3
doctest/2.4.6
|
So there are two orthogonal things going on here...
I think the fundamental blockers to this PR are:
One of my options is this - I think it's my simplest option, and retains the previous behaviour on default...
|
Another of my options is to remove the following versions from the ApprovalTests.cpp CCI recipe...
The following versions would remain:
Since ApprovalTests.cpp does try hard to honour semantic versioning, and Conan would still support several 8.x.y releases, this maybe wouldn't inconvenience too many users - but if they have pinned to a particular ApprovalTests.cpp release, I think it would still break their builds??? |
Given that ApprovalTests.cpp is used in Conan as a single-header, this should not even prevent uses from accessing the library via Conan on armv8, I presume... |
You can conditionally add different versions of requirements + do tests. def requirements(self):
if tools.Version(self.version) >= "8.8.0":
self.requires("doctest/2.4.6")
else:
self.requires("doctest/2.3.6")
def validate(self):
if tools.Version(self.version) < "8.0.0":
if tools.Version(self.deps_cpp_info["doctest"].version) >= "2.4.0":
raise ConanInvalidConfiguration("The version of doctest is too new, use an older version (pre 2.4.0)") Then, you can remove some old versions, while keeping some. |
Thank you for the suggestion. The problem with this is that doctest 2.3.6 will fail to build on CCI's armv8 CI builds... |
Removing versions does not impact any user AFAIK, they just wont get updates anymore for improvements (or new platform support) assuming they are not using revisions. I would like to suggest
I think that would be the best middle ground of the blockers you very nicely summarized |
What ⬆️ said. |
"assuming they are not using revisions." ... I don't know the consequences of this, if they were using revisions...
Ok, so if I understand this correctly, it will then allow me to retain all the earlier versions... Thank you very much indeed. I will go ahead and do this, but probably tomorrow... |
All the older versions will persist on conan center: their recipes will just no longer be tested during CI builds, and they won't get new revisions. It was suggested by @uilianries that I retain the newest releases on the 8.x and 9.x series, in case their receipes ever need updating, and so long as they do not complicate the Python recipes. I've also kept a few of the 10.x series as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Less is more
From @uilianries on #include Discord, I got a better understanding of the (lack of) consequences of removing old versions from the yaml, so I've kept the latest of each on the 8.x and 9.x series, and the most recent 4 on 10.x series... As I understand it:
This massively simplifies our Python recipe... Fingers crossed the CI just works now... |
And whatever happens, I'll be warming the planet just a little bit less, with fewer CI build steps in this and future PRs!!! |
All green in build 10 (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀
Thank you everyone for all the support on this PR! |
This was caused by my pruning out a lot of older releases from the Conan CI. See conan-io/conan-center-index#7213
Specify library name and version: approvaltests.cpp/10.12.0
new version
conan-center hook activated.