hippware / rn-chat

MIT License
5 stars 0 forks source link

Remove XMPP; Use GraphQL; Work with `next` server #3073

Closed bengtan closed 5 years ago

bengtan commented 5 years ago

From a visual scan of HybridTransport.ts, I compiled a rough list of things to be done.

I also added some things that I didn't see in HybridTransport.ts but that I thought of. These are marked with *.

Own user

Other users

Image handling

Remaining bot API

Messages

Misc

RNBGL *

Some of these may be spun out as sub-tickets.

(Disclaimer: Please note this is a rough list which is likely to change over time.)


FYI, the parts which are 'separate universes for XMPP and GraphQL' are: conversations, messages and online presence.

bengtan commented 5 years ago

(Not sure where else to put this. I don't want to put it on Slack, but I also didn't want to create yet another github discussion ticket.)

Source code management plan

It turns out we may be able to avoid creating a third 'experimental' app. Here goes.

In order to develop against the next server (which has the 'full graphQL, no XMPP' code), we'll:

and develop on the master branch.

All new features and changes go onto the master branch (for 4.0.0 and onwards) by default.

If, however, we need to implement bugfixes for 3.10.0, we'll create a 3.10.x branch at the 3.10.0 commit point and merge to 3.10.x.

For now, we'll try to only merge changes to one branch, either master or 3.10.x.

When the 'remove-XMPP' Epic is stable enough, on the master branch, we'll

and evaluate how to port any changes (if any) from 3.10.x onto master. Either we merge from 3.10.x to master, or we individually merge all the PRs-on-3.10.x onto master (and then discard 3.10.x). Or something.

Hopefully, if all goes well, there will be very few changes on 3.10.x that need to go onto master, and reconciliation won't be complex.

If we really need to (ie. things get more complicated than expected), we still have the option of creating a third 'experimental' app. But let's hold that in reserve.

bengtan commented 5 years ago

Add:

RNBGL

southerneer commented 5 years ago

lookup (user search?)

We don't use lookup in the front-end code so we probably don't need to worry about the GraphQL equivalent.

southerneer commented 5 years ago

shareBot is no longer used (replaced by inviteBot)

bengtan commented 5 years ago

Cross-posting:

LGTM. Great to check that box on the checklist

https://github.com/hippware/rn-chat/pull/3139#pullrequestreview-182822034

bengtan commented 5 years ago

Besides removing XMPP and replacing with GraphQL, we also have to make other changes because the app is pointing to the next server.

The next server has a lot of new stuff and changes. I'm putting such tickets (ie. RNBGL) here for lack of a better place.

bengtan commented 5 years ago

Status update:

Only major thing left is GraphQL presence. There's also some changes for conversations/messages but expected to be minor.

There are also some minor 'clean-up'-ish things to be done.

Some bug reports have started filtering in. Those should (hopefully) be minor as well.

We're soon reaching the point where we can just track existing sub-tickets, and treat bug reports as general tickets, and no longer have to track this Epic itself.

bengtan commented 5 years ago

@southerneer has submitted a PR for online presence so I ticked the checkbox for it. Presuming it's a good PR, that's all the XMPP replacements done. After it's merged, we can consider this Epic to be done, and just track individual (sub-)tickets.

southerneer commented 5 years ago

That PR is still WIP. Hopefully I can figure out the problem today.

bengtan commented 5 years ago

Yay. Online presence has been merged (I just ticked the checkbox). So all the subsystems are done. Just one or two stray subtickets left.

bengtan commented 5 years ago

This is effectively done. The remaining tickets are either Waiting for Deployment, can be tracked individually, and/or aren't actually related to XMPP/GraphQL.

So this can be closed.