From 513c164a8291cdab887650e7ccb8883ebd91195a Mon Sep 17 00:00:00 2001 From: realaravinth Date: Thu, 30 Sep 2021 20:37:10 +0530 Subject: [PATCH] rfc1: ecosystem and architecture --- .../1-ecosystem-architecture.md | 75 ++++++++++++++++++ .../res/ownership-relationship.drawio | 1 + .../res/ownership-relationship.png | Bin 0 -> 44465 bytes 3 files changed, 76 insertions(+) create mode 100644 rfc/1-ecosystem-architecture/1-ecosystem-architecture.md create mode 100644 rfc/1-ecosystem-architecture/res/ownership-relationship.drawio create mode 100644 rfc/1-ecosystem-architecture/res/ownership-relationship.png diff --git a/rfc/1-ecosystem-architecture/1-ecosystem-architecture.md b/rfc/1-ecosystem-architecture/1-ecosystem-architecture.md new file mode 100644 index 0000000..b85c827 --- /dev/null +++ b/rfc/1-ecosystem-architecture/1-ecosystem-architecture.md @@ -0,0 +1,75 @@ +# Ecosystem Architecture + +## Summary + +Every bridge is consists of at least two components called interface, +each on either side of the bridge. State is synchronised with respect to +the global-owner repository and when state changes are made on +forge-local copies, each copy aims to be eventually consistent, i.e, +state is synchronised is whichever order they arrive at the bridge. + +## Terminology + +- **Interface:** A bridge component that talks the bridge protocol and is + able to affect changes to the forge that it manages. + +- **Creator:** A person or a team that is responsible for managing the + project. + +- **Main copy:** creator's copy of the source code. In pre-federation + forges, these are the main/upstream repositories. + +- **Main forge:** The forge on which the creator's repository is hosted + +- **Main Interface:** An interface that is hosted on the main forge or + is able to perform actions that directly make changes to the main + forge's contents. They usually have some authenticated access to the + main forge(OAuth access, etc.) and also have a namespace on the + forge where they can host forked repositories. + +- **Main-interface copy:** A forked copy the main copy. These is managed + by the main interface and is used to pass on changes from other + contributors to the main copy. + +- **Local Interface:** An interface that is operated on the + contributor's forge. **local and main interface roles are + interchangeable and are decided based on the direction of the + transaction** They usually have some authenticated access to the + local forge(OAuth access, etc.) and also have a namespace on it + where they can host copies(manual cloning and uploading) of the main + copy. + +- **Local-interface copy:** A manually cloned and uploaded version of the + main copy. This exists on the contributor's forge and is managed by + the local interface. Any pull request/patch submissions by the + contributor is made against this copy. + +- **Contributor:** person who wishes to take part in the development of + a project that is **not** on the `main forge`. + +- **Contributor-fork:** A contributor's fork of local interface copy. + +![ownership diagram](./res/ownership-relationship.png) + +## Architecture and mechanism + +1. Contributor requests `local interface` to fork a repository not local to their forge + +2. `Local interface` contacts North Star, federated forge protocol's + discovery service, to find main interfaces for `main forge`. And + requests a `main interface` to fork the `main copy`. + +3. `Local interface` clones and uploads `main copy` to `local forge` + +4. `Contributor` forks `local-interface copy` and makes changes. + +5. `Contributor` sends patch/pull request to `local-interface copy`. + +6. `Local interface` processes contributor's changes(apply + `.forgeignore`, etc.) and generates a patch. This patch is sent to + the `Main interface`. + +7. `Main interface` applies the patch on `main-interface copy` and makes + PR/sends patch to `main copy`. + +9. Creator verifies the patch and applies it to `main copy` diff --git a/rfc/1-ecosystem-architecture/res/ownership-relationship.drawio b/rfc/1-ecosystem-architecture/res/ownership-relationship.drawio new file mode 100644 index 0000000..d8d014a --- /dev/null +++ b/rfc/1-ecosystem-architecture/res/ownership-relationship.drawio @@ -0,0 +1 @@ +5VpNc5s6FP01XsbDN3hZnLSdaTvtTBZtVx0BAtQKRIWI7f76SiAMsoidznMcnpOFg66EhM65R1e6sLDXxfYdBVX+iSQQLywj2S7s24Vl+Z7Jf4Vh1xnsldsZMoqSzmQOhnv0B0qjIa0NSmCtNGSEYIYq1RiTsoQxU2yAUrJRm6UEq6NWIIOa4T4GWLd+RQnLO2tg+YP9PURZ3o9sequupgB9YzmTOgcJ2YxM9t3CXlNCWHdVbNcQC+x6XLr73j5Su38wCkv2lBvu3js/bh/CB4QA+BqG36CZfLiRvTwA3MgJZ4hhEC1jUvCuyKaElP+nsCJyFmzXQ0NJUyZQ9G4s7HCTIwbvKxCL2g33BW7LWYF5yeSX+tP2Q0PK4HZkkk//DpICMrrjTWStI4GUnuTYsrwZeDF9actHnATSBqQrZPueB7T4hQTsH8CzpsDLmx487pKMoqhhZDYQerPD0D7ugAVA5Q0qGaSpgGUmMFqOMzMYneMwpoRm8AYTvq7NBUNndq5oWRooMOHBQBYJZTnJSAnw3WANVdiGNh8JqSRYPyFjOxnZAF8NVCg5gnT3Tdy/dPvi93Hd7VZ23pV2svQoBTVpaAyPzDOQYRRwn2CnfUpgcJRQCjFg6EENmGdnJ9A8XGOrZpT82odpS/DRMIxKuN5vDgRyCajzPWMAo6zk1zEUi4xKTcoXcMlbwIs8gFfiuthmYquzhKhaFrCuQYbK7EfEty8CqFBIAHGhfQQRxF9IjRgiYoSIMMbFODR4I4dmwlPCFGG8JpjHCjEXOzZSF6zOJDXPVaTm9nuwsdSsCan5zyU103lhqTmOr4htaVjuCcG1pS+QIg6B8JT/qMLVE1Voz0qFq9elwjSIYRyLUdtJjWqiwHXcox7wD9sJTw2FM9Cn/eL6NMf6NJarILisPvsD6EmBmrMSaP/YxxQ6gvykTDRlYtEyBPGvrOV7LJb271Fp6euCJqrEizzX60TenZW1leJQ/ojU/hLxo1a9bOr2AQ8lnKZWK+EzCFXT6cSW1bzolvWldXqhLavZp35OidGalxj19Mr/R4xeHMAoPa8YEwCD9Fxi9OemRlNPCK0pBG3+x8N89DASVxnbAzDyAz5rpspMY/uQygIlSadoWKM/IGq7ErxUBJWsnZ0bLtxb0RcXcd3p2dTILkkJz8NJoB40vECnxJtgxHo2RlyNkU8AleK2Iad0jURYB+KYYmJ1USa8x5iISbW7ThIClQPb1zmYSnA9Hwf+E9RwxXwcimKKkMlz1vMxome13o5TtZKM1xE8DtNUk/QYF6VHT3esxy91XhU9h/utl6fH0s+6XD3JSD5XHuVFBupUlDfti1Kin3gUxVwjC94Tdr0XjfOW/jawX6REMlWhwPvdkL7ipgPrDW/AIdkOlf3C9ll8DlDnqNqfoPlRry12vbdvGsUA17wO2ob68tc2dLqtM+0ixMva/Qcibd3oKxv77i8= \ No newline at end of file diff --git a/rfc/1-ecosystem-architecture/res/ownership-relationship.png b/rfc/1-ecosystem-architecture/res/ownership-relationship.png new file mode 100644 index 0000000000000000000000000000000000000000..7f0c8a56141c85a2d8792bd088cd1a33cf28c096 GIT binary patch literal 44465 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 a;x6o7Wd-HeVR