rippled icon indicating copy to clipboard operation
rippled copied to clipboard

Conan 2 Update

Open legleux opened this issue 10 months ago • 3 comments

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.

  1. The updating of libXRPL job is not handled in this PR there's probably a better way to do it.
  2. The updating of recipes/packages needs to be gated better than before.
  3. Build images are not updated, Conan 2 is just updated in situ.

legleux avatar Jun 06 '25 15:06 legleux

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

Impacted file tree graph

@@            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     

see 4 files with indirect coverage changes

Impacted file tree graph

: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.

codecov[bot] avatar Jun 06 '25 15:06 codecov[bot]

What's your base OS ? The compiler versions selected are ancient.

Bronek avatar Jun 06 '25 19:06 Bronek

@legleux you marked many things as resolved, but haven't pushed any commits since then

mathbunnyru avatar Jun 13 '25 09:06 mathbunnyru

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 avatar Jun 26 '25 18:06 legleux

@legleux we don't care about gcc-11 and clang-14 anymore, just delete these profiles. It's clutter now.

Bronek avatar Jun 27 '25 11:06 Bronek

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 avatar Jul 01 '25 15:07 Bronek

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.

legleux avatar Jul 01 '25 19:07 legleux

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)

mathbunnyru avatar Jul 01 '25 19:07 mathbunnyru

@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.

legleux avatar Jul 01 '25 20:07 legleux

@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 avatar Jul 01 '25 21:07 bthomee

@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 (nix macos and windows, anything I missed ?) to use Conan 2
  • switch only nix to 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 macos and windows workflow, obviously
  • do not change conanfile.py unless 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.

Bronek avatar Jul 02 '25 08:07 Bronek