Conan 2 Update
High Level Overview of Change
Updates most of the CI jobs to use Conan 2 as minimally invasive as possible.
Context of Change
Conan 1 has stopped receiving updates for packages and this is holding us back from updating dependencies.
I was trying to change the pipeline as little as possible but it got out of hand so I'm trying to just get some of this out before we do a larger refactor.
Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [x] Refactor (non-breaking change that only restructures code)
- [ ] Performance (increase or change in throughput and/or latency)
- [ ] Tests (you added tests for code that already exists, or your new feature included in this PR)
- [ ] Documentation update
- [x] Chore (no impact to binary, e.g.
.gitignore, formatting, dropping support for older tooling) - [ ] Release
CI jobs needs further refactoring.
- The updating of
libXRPLjob is not handled in this PR there's probably a better way to do it. - The updating of recipes/packages needs to be gated better than before.
- Build images are not updated, Conan 2 is just updated in situ.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 79.1%. Comparing base (
e9d46f0) to head (933f370). Report is 1 commits behind head on develop.
Additional details and impacted files
@@ Coverage Diff @@
## develop #5480 +/- ##
=========================================
- Coverage 79.1% 79.1% -0.0%
=========================================
Files 817 817
Lines 71704 71705 +1
Branches 8235 8237 +2
=========================================
- Hits 56725 56723 -2
- Misses 14979 14982 +3
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
What's your base OS ? The compiler versions selected are ancient.
@legleux you marked many things as resolved, but haven't pushed any commits since then
What's your base OS ? The compiler versions selected are ancient.
@Bronek This is the CI config! :rofl:
Let's get this in so the next one can be updating all that with the new CI images.
@legleux we don't care about gcc-11 and clang-14 anymore, just delete these profiles. It's clutter now.
What's the reason to remove workflows:
-
clang-format -
doxygen -
levelization -
libxrpl -
missing-commits
?
If that reason is lack of appropriate container, then container shall be created for these.
What's the reason to remove workflows:
* `clang-format` * `doxygen` * `levelization` * `libxrpl` * `missing-commits`?
If that reason is lack of appropriate container, then container shall be created for these.
@Bronek All the of the pipelines were being queued and not running most of the day yesterday I didn't want anything I didn't touch running.
With all debug comments, duplicates and deleted workflows this feels like a WIP, not something ready. I tried my best to review it in a current state.
@legleux please, when you're finished, ask to review explicitly (and before that check your diff for deleted files, duplicates and some comments)
@bthomee The first line of this PR was to update to "Conan 2 as minimally invasive as possible." With the requests to update the pipeline steps, actions, update dependencies and build images I think its be best to either accept the PR in its initial form or refactor the pipeline.
@bthomee The first line of this PR was to update to "Conan 2 as minimally invasive as possible." With the requests to update the pipeline steps, actions, update dependencies and build images I think its be best to either accept the PR in it's initial form or refactor the pipeline.
@mathbunnyru @Bronek is there a quick path forward to getting this PR merged with minimal changes, just so we can start leveraging Conan 2 for dependency updates (principally grpc/protobuf), and then clean it up afterwards by using the new CI images, custom profiles, etc? I think that would be better than starting over from scratch and incurring another week or so of delay.
@bthomee The first line of this PR was to update to "Conan 2 as minimally invasive as possible." With the requests to update the pipeline steps, actions, update dependencies and build images I think its be best to either accept the PR in it's initial form or refactor the pipeline.
@mathbunnyru @Bronek is there a quick path forward to getting this PR merged with minimal changes, just so we can start leveraging Conan 2 for dependency updates (principally grpc/protobuf), and then clean it up afterwards by using the new CI images, custom profiles, etc? I think that would be better than starting over from scratch and incurring another week or so of delay.
@legleux please go back to strip it down in scope to be just Conan 2 migration, similar to what https://github.com/XRPLF/rippled/pull/5219 was. That is:
- do not remove workflows
- adjust all workflows using Conan 1 (
nixmacosandwindows, anything I missed ?) to use Conan 2 - switch only
nixto new images generated by https://github.com/XRPLF/ci , they already have Conan 2 installed (do not worry about which distro and which compiler version, we will work on this in future PR; just pick something you like) - if you need something that's not in the image (or is not as it should be), put a workaround here and flag it in https://github.com/XRPLF/ci/issues or create a PR there
- you will still need to install Conan 2 inside
macosandwindowsworkflow, obviously - do not change
conanfile.pyunless actually needed - add project-specific profiles for compiler workarounds
- you do not need to change
BUILD.md, unless you want to
The more focused this work becomes, the more chance of success; the goal is to stop using Conan 1.
I will close this PR because most of the comments above will become useless.