Description
Summary
It has been proposed that we split the ibc-rs monorepo into two repos - one for the proto & module crates and the other for the relayer crate (and its associated crates).
Additionally, the relayer code must not depend on the ibc
crate to have clear boundaries/separation and allow the modules to evolve independently.
Problem Statement
The monorepo approach is restrictive and becoming difficult to maintain. (See https://github.com/informalsystems/ibc-rs/discussions/1437#discussioncomment-1458578)
Moreover, having the relayer crate depend on the ibc crate makes it difficult to modify one without touching the other, and have resulted in code bloat and unclear boundaries - for e.g. the modules code contains relayer specific code.
Proposal
Using the ideas described in https://github.com/informalsystems/ibc-rs/issues/2541 and https://github.com/informalsystems/ibc-rs/discussions/1437, the repo hosting the relayer crates (the relayer
repo) would look like so ->
<relayer>
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Cargo.lock
├── Cargo.toml
│
├── crates
│ ├── ibc-relayer
│ ├── ibc-relayer-cli
│ ├── ibc-relayer-rest
│ ├── ibc-telemetry
│ └── ibc-chain-registry
│
├── etc...
And the modules
repo would look like so ->
<modules>
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Cargo.toml
│
├── crates
│ ├── ibc
│ └── proto
│ ├── ibc-proto
│ └── ibc-proto-compiler
│
├── etc...
Acceptance Criteria
The ibc-rs repo is split into two repos as proposed above, ideally preserving history.
TODOs
- Rename the default branches of both repos from
master
tomain
- Split
gm
out of the repository
For Admin Use
- Not duplicate issue
- Appropriate labels applied
- Appropriate milestone (priority) applied
- Appropriate contributors tagged
- Contributor assigned/self-assigned
Activity