Consolidating ibc-rs's structure #1437
Replies: 3 comments 2 replies
-
We currently have a "monorepo" mindset of conflating everything related to IBC (in Rust) into this single repository. This approach is helpful as it keeps the crates closer to each other, and so we avoid the need for explicit basing on and off master among dependencies (such as we need to do currently with tm-rs, e.g., #1339). The disadvantage of this approach is that is a bit unwelcoming: onboarding is more tough because there are 6 crates and their relations are unclear. Our naming is also inconsistent, which does not help: the I like the proposed solution of splitting into 3 logical parts. I can't think of any disadvantage aside from the initial discomfort this can create to devs that are used with the existing layout. |
Beta Was this translation helpful? Give feedback.
-
Isn't the proposed structure the very same one we have already? Or is the suggestion to move everything aside from the Can we not address this by just restructuring the repo a little bit? eg. move On the naming issue, I agree that we should rename the folders to the full name of the crate they contain. |
Beta Was this translation helpful? Give feedback.
-
Yes, this is essentially what I had in mind, though the structure I was considering looks a bit different. The overarching logical components I'm thinking of are
I think this would be the cleanest way to structure the repo. Each sub-crate would then have its own |
Beta Was this translation helpful? Give feedback.
-
I had a good discussion with @adizere where we discussed what a more cleanly organized
ibc-rs
codebase would look like. I think the main issue right now is that there is not a clear logical distinction between themodules
crate, Hermes, and the protobuf utilities.I initially floated the idea that these three crates be split off into their own distinct GitHub repos, but there's some concern there that if we did that, that would result in looser integrations between the three pieces, which is something Adi would like to avoid.
Ultimately, I think we'd still be splitting
ibc-rs
intomodules
,relayer
, andproto
crates, but they'd be congregated into a single clearly-delineated repository, perhaps as a Cargo workspace, with the following structure:What do folks think about this consolidation?
Beta Was this translation helpful? Give feedback.
All reactions