-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace Websockets with GRPC #20
Replace Websockets with GRPC #20
Conversation
@webwarrior-ws please split the e2e commit in two: first commit will work with normal HTTP, 2nd would change it to HTTPS |
It doesn't work with HTTP:
|
It works in RunIntoMe. In fact it's what we have in production. |
33ca1ba
to
2ee88ec
Compare
Got it to work with HTTP. Split commit into 2. |
CI of 1st commit is red, please fix; after that I'll merge |
1c811c5
to
a8e60f8
Compare
CI for all commits is green now. |
I just realized that the WebSocket proj already had the Core project hooked up (see src/WebSocketApp/Models.fs), so:
|
5163997
to
c4c2eaf
Compare
@knocte I added models and client/server interop. |
@webwarrior-ws great, but you didn't move WarningsAsErrors yet |
3365c78
to
fdf1c4e
Compare
Moved TreatWarningsAsErrors to |
bc5181a
to
fb814ad
Compare
I have concerns with 2 of the commits you pushed yesterday:
|
Because old version of test expected first |
Are you saying that these cleanup exposed a bug? Then explain in commit msg this fact so that it is understood why CI is red -> because CI is catching the bug that will be fixed later? |
7cb299d
to
ee31d03
Compare
Last but not least, these 3 commits:
|
I don't see any commit to squash this with. It is not connected to any other work in this PR, but is necessary for CI to succeed now as version 8.0.1 got marked as vulnerable. |
Read the message again, I gave a hint of what to do in that case. |
You only said what to do if that commit is in master (it is not). |
I meant if STJ is already in master. |
Update System.Text.Json library to version 8.0.4 since previously used version (8.0.1) contains vlunerabilities.
Removed WebSocket project and added GRPC projects from RIM (copy&paste). Then removed unused stuff from GRPC* projects and specified package versions in Directory.Packages.props.
Made end-to-end GRPC test that makes sure GRPC communication is working.
Use HTTPS connection for GRPC communtication. Also added commands to CI that trust ASP.NET certificate on Linux because otherwise GRPC communication fails.
Enable TreatWarningsAsErrors in Directory.Build.props. Exception is CS8981 (lowercase type names) in GrpcClient and GrpcService projects because it is triggered by auto-generated protobuf types.
Added GrpcModels project for server/client interop which includes message models (that were in WebSocketApp), as well as Marshalling module (code from RIM). Use serialization options defined in Core/RedisStorageLayer.fs in Marshalling module. This is needed for F# types support.
676cdea
to
db64f15
Compare
Only one of these has been addressed. |
Implemented json converters for Match and Option<'T> types. Match type converter is placed in GrpcModels.ModelSerialization since it's not used in Redis, but only in GRPC.
Modified e2e test to use message that returns response so that serilization is tested.
Clean DB after each test run in BasicTests, MakerOnlyOrders, MarketOrders, and LimitOrders test classes. This is needed for all tests to start from empty state. This commit exposes bug in end2end test - response to the first LimitOrder should be None, not Some(Full). It will be fixed later.
Expand GrpcE2ETest so that Match.Partial case is used and any serialization errors cancerning it will be caught by this test.
Fix in Match type deserialization (Partial case).
b2f8838
to
7b4e449
Compare
Squashed json converters commits |
Fixes https://github.com/nodeeffect/backlog/issues/4