Skip to content

Repo split #2639

Closed
Closed
@hu55a1n1

Description

@hu55a1n1

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 to main
  • 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

O: code-hygieneObjective: cause to improve code hygiene

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions