-
Notifications
You must be signed in to change notification settings - Fork 3
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
Prod Release 21/02/24 #574
Conversation
morgsmccauley
commented
Feb 21, 2024
- feat: Improve Schema Error Diplay with Glyphs (feat: Improve Schema Error Diplay with Glyphs #562)
- feat: Support Star Contract Filter in Block Streamer (feat: Support Star Contract Filter in Block Streamer #572)
- feat: Update frontend to handle new registry types (feat: Update frontend to handle new registry types #566)
Accidentally overwrote some changes here - #555. Checkout a branch a resolved the latest changes for removing glyphsuccess color from green to transparent and removing trycatch. Glyphs margins to showcase a better error message to the user. The Glyph is either red or green. Green indicating it has not caught an errors and red indicating it has found an error. When an error is found it will come with a hoverable error message as well as the line it was caught on. Procedure: Onload of the schema page the glyphs will mount and check if there is an error based off the users previously written schema or their locally stored code. If the user has an error: It will highlight the line the error was caught on with a red glyph and a hoverable message. If the user does not have an error it will remain on line 1 with a green glyph. Onhover it will tell the user there are no errors. If the user navigates away from the schema tab with an error it will prompt the user with a Alert that there was an error and to please return back to the schema tab and correct the schema. The Glyph functionality with run on a debounced event of 500ms based off the users onChange typing activity on the schema page. When triggered it will prettify the users schema and will attempt to generate types in a try/catch. If it hits the error then it will relay the line number the error was caught on and the err message which the glyph will represent. The Glyph only takes place on schema.sql as for indexLogic we have monaco's support for intellisense/catching errors in the JS env. In the case in the video where the glyph is on line one and hovering over the glyph showcases an error message with a line number - this is when prettier is throwing an error and can be added through string matching to correctly display the glyph location https://www.loom.com/share/78d0c6435115470597b9e8448976fda4?sid=fba10322-2ded-4b14-8178-8a5b51143148
Block Streamer will fail to process a * contract filter as it will try to fetch index files for all account IDs. This is not only extremely inefficient since we aren't planning to skip anything, but will also fail as we limit the number of accounts fetched as a sanity check. Block Streamer, if the filter is "*" specifically, now skips fetching index files and begins reading from Lake directly instead. This retains the behavior of block streamer reading block data before pushing the height to Redis. There is an intended migration of Runner's prefetch into Block Streamer. This change works well towards that goal. However, obviously there is double work performed here: We fetch the block, only to just put the height into Redis. If, in the short term and before we migrate prefetch from Runner to Block Streamer, we need to speed things up, we can list files form S3 instead. However, this work would be removed after the mentioned migration of work.
This PR updates the frontend to work with the updated registry contract types/methods. There are two parts to this change: - Consuming the new types, mainly `rule` and `startBlock`, and writing these types back during registration - Adding the new `StartBlock::Continue` option, which allows developers to resume the existing block stream. I've attached images of the updated UI for reference. Note that updating the contract filter is disabled with the new "Continue" option. ![image](https://github.com/near/queryapi/assets/11974624/d4069cc8-d7bf-4c66-9d33-ec9d51bfcc83) ![image](https://github.com/near/queryapi/assets/11974624/0b3ef7e4-6542-4b5a-86ad-14c8028565ed)
Now that both dev/prod have been completely migrated, we can remove the `allowlist`. This makes the V2 architecture the default. We don't need to remove the `denylist` from Coordinator V2, that process has already been stopped.
Logic fix for handling monaco glyph mounting. Originally it will error on diffView/debug mode due to rendering of unmounted glyphs. <img width="1094" alt="Screenshot 2024-02-20 at 3 05 05 PM" src="https://github.com/near/queryapi/assets/42101107/9542852d-6a27-413a-9b56-d90a2abbb1fa"> Video post fix: https://www.loom.com/share/dd797612590d4f12a27e7216ab009b68?sid=4ec944fd-e718-4851-b231-4339ffab5bd8
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. We do also have the option of waiting until next Monday to do the release, to include supporting * filter as well. That PR is nearly merge ready.
I assume you've removed build triggers and killed Coordinator V1 already in prod? Since we're merging the remove allowlist PR too now.
We can do another release then. I want to get "Continue" out ASAP :)
Yes, triggers have been removed. |