FreeFeed / freefeed-server

FreeFeed server
https://freefeed.net
MIT License
41 stars 18 forks source link

Upgrade Socket.IO to v4 #660

Closed davidmz closed 7 months ago

davidmz commented 8 months ago

Changed

indeyets commented 8 months ago

@davidmz Is there any chance we can test for compatibility with legacy socket.io client here? You replaced client library as well, so tests rely on modern client, which is suboptimal

davidmz commented 8 months ago

Well, I can try using both clients in tests and run them twice, with v2 and v4 clients. If we guarantee v2 support, it's something we should do, but that would slow down the tests a lot, of course.

But actually, I upgraded the server first and ran all the tests with the old client. And only then I updated the client in the tests.

indeyets commented 8 months ago

Will npm/yarn allow us to have 2 versions at the same time?

I think we MUST have v2 client now, but we should not guarantee compatibility with v3/v4 immediately. It can be in experimental status initially.

Then at some point we will start to support v4 officially and deprecate v2. then we can release a major version which breaks compatibility

davidmz commented 8 months ago

Yes, AFAIK, it is possible in Yarn using aliases.

Let's try it and see effect on test times.

davidmz commented 8 months ago

Really, I thought it would be difficult to duplicate all the tests. But we don't have so many real-time operations: we have subscribe/unsubscribe, authorization, and something else. And receiving messages. All of this can be tested separately, in a small test.

We can leave the main tests on v2, and test compatibility with v4 separately and minimally.