-
Notifications
You must be signed in to change notification settings - Fork 19
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
updating boost.unordered with new boost-ci: a field-report #76
Comments
Some comments:
Travis has a quota on the free service. So unless you pay for it it is unsuitable for Boost libs.
Better get ASAN/UBSAN running. Can be done via B2 and the new boost-ci scripts have first-class support for that IIRC. Check the options :) (B2_ASAN=1, B2_UBSAN=1) Not sure what is meant by "considered untrusted" and why that prevents ASAN to run. Sounds like something else to me, maybe check that further.
Sounds like an opportunity to improve Boost.unordered. Best to open issues for that in the unordered repo |
Here are the asan-errors: (https://drone.cpp.al/tobias-loew/unordered/19/2/1) Linux asan: linter: untrusted repositories cannot enable privileged mode I'm not sure whether that disappears when run against the original-repo (and not my fork)? |
I'm not sure if this flag is even required. You could try removing |
"asan" jobs requires ptrace capabilities on the docker container. The current solution is to set the repo to "Trusted", which I have just changed for your fork of boost.unordered. By removing the privileged=True flag, the job will run without privileges. Perhaps your tests are not actually utilizing "asan" and therefore they appear to succeed because they aren't running the tests. You have modified the std library versions to match clang. The question is, if clang and std library are separately managed projects, maybe there's no correspondence between the versions and they do not need to match? Were the builds failing because of the std library version?
|
Hi Sam,
I realized later that libstdc++ is the gcc version and thus matching the version with the clang version is bollocks.Clang 9 - 11 give a hard error when selecting a deleted ctor in a sfinae context. By changing the stdlib I tried to address that. I have to check the original configuration again. But checking each clang with each libstdc++ would give a lot of test cases. Since I'm neither a GCC nor clang expert, I don't know what are reasonable combinations.Another thing: I think I have used up all the free Travis runs. Is there anything I can do about ( apart buying new runs), or will I get new runs in a month or so?
|
This is an open question - which is the best choice of stdlib to match each clang version? We can keep it in mind, and possibly change the .drone.star example file in this repo. Pull requests are welcome - especially if it's conclusive the builds won't succeed without an updated library.
The main motivation for developing Drone was to replace Travis. So, you are already following the path to a solution which is implementing Drone. You could "Copy the ci.yml file from this repository to .github/workflows/ci.yml of your repository", and get Github Actions going also. That provides very similar test coverage, a level of redundancy. |
Last week, I started integrating the new boost-ci with boost.unordered.
At that point, boost.unordered's tests were mostly failing and for that reason there hadn't been a PR for the new drone-ci. So, I started out on my own fork of boost.unordered and Sam Darwin enabled my account to run tests with drone. Here's a short protocol of what I did and how it worked out:
Summary:
boost-ci integrates seamless with other boost projects and works out of the box. The upcoming problems originated from the CI-platforms (Travis refusing, Appveyor cannot install MinGW) and the failing tests in the boost-project (buggy compilers / test-code).
The text was updated successfully, but these errors were encountered: