Use Workspaces

INFOVALUE
DATE2023-03-10
AUTHORAmir H. Alesheikh amirhossein.alesheikh@gmail.com
PROPOSERAmir H. Alesheikh amirhossein.alesheikh@gmail.com
DECIDERAmir H. Alesheikh amirhossein.alesheikh@gmail.com
CONSULTEDNONE
STATUSaccepted

Decision:

Using one repo, which hosts a workspace, and many crates containing binary and library crates.

Context

How should we structure different crates related to the soapberry project?

Decision drivers

  • Ease of change
  • Reliability of API
  • Complexity of maintenance

Considered Alternatives

One repo for soapberry and submodules for each crate

  • Using submodules will create complexity when updating versions
  • Also this will not help with immediate feedback

one repo per crate

  • This item will cause a huge amount of friction when one crate updates.
  • Also this will cause a headache for maintenance of CI/CD, considering that each change needs to be replicated on all crates.

Consequences

Pros

  • Increases the agility.

Cons

  • History of repose that I have already created will be lost.