Brig Polysemy: Galley RPC effect#2653
Conversation
|
I haven't looked into details, but you have a handful of conflicting files with the upstream |
|
@mdimjasevic should be resolved now |
There was a problem hiding this comment.
This looks great and I like how you defined the GalleyProvider interpreters! I will rebase my PR #2450 on top of this once it gets merged because my approach was direct (without the RPC and ServiceRPC effects) and in the PR I didn't turn into an effect everything Galley in the Brig.IO.Intra, but only what I needed to get the code compiling.
You have a TODO or two and one undefined function. Can you address them before we merge the PR?
|
potentially unpleasant question: would it be possible to skip this effect altogether, given we're planning to merge brig and galley soon, and it'll all just be function calls? |
|
@isovector , the PR fails with this in CI: I haven't looked at it, but it might be an unrelated flaky test. I'll re-run the CI to see if happens again. |
Sorry, just saw this. It's doable, but is currently blocking getting more polysemy into brig. Assuming CI and review passes, the work here is done. Up to you though! |
|
There is another failure: |
|
@fisx , I find this a useful PR. Before we can merge Brig and Galley, we have to fully polysemise Brig, and this PR is bringing us in that direction. |
| GetExposeInvitationURLsToTeamAdmin id' -> getTeamExposeInvitationURLsToTeamAdmin id' | ||
|
|
||
| runIt :: HttpClientIO a -> Sem r a | ||
| runIt = undefined |
I couldn't reproduce this once locally, and neither could @elland . I believe it's a flaky test. So re-running it once again in CI. |
This PR moves the majority of brig-to-galley's RPCs into a new
GalleyProvidereffect. In addition, it introduces two implementation-detail effects,ServiceRPCfor routing RPCs to correct services, andRPCfor actually sending the RPCs.The vast majority of remaining
MonadMaskandMonadUnliftIOusages in brig correspond to RPCs. After doing the same treatment to cargohold and gundeck, it should hopefully be trivial to remove theMonadIOinstance forAppT, at which point brig will be fully polysemized.Checklist