-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
feat: Improve Linting performance #23865
Conversation
7d6b741
to
bbdeb62
Compare
/ok-to-test |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/5259861401. |
/ok-to-test |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/5260780344. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5260780344.
|
/ok-to-test |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/5264499340. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5260780344.
|
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5264499340.
|
/ok-to-test |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/5271022700. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5271022700.
|
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5453197785.
|
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5453197785.
|
91e848a
to
9e9630b
Compare
/ok-to-test |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/5456603669. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5456603669.
To know the list of identified flaky tests - Refer here |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5456603669.
To know the list of identified flaky tests - Refer here |
/ok-to-test |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/5464203804. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5464203804. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/5464203804. |
## Description In #23865 , a new architecture was introduced that makes linting and evaluation independent. Sequal to that change, this PR removes redundant linting code from eval code. - Removes the triggerfield dependencyMap - Removes the "lint order" generated from eval flow - Removes "extraPathsToLint" #### PR fixes following issue(s) Fixes #23448 #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
Description
This PR introduces a new architecture, making evaluation and linting independent.
In the previous architecture, one dependency graph was used to hold the relationship between entities in the application and subsequently, the "evaluation order" and "paths to lint" were generated.
Although similar, the dependency graph required for evaluation and linting differ. For example, trigger fields should not depend on any other entity/entity path in the eval's dependency graph since they are not reactive. This is not the case for the linting dependency graph.
Performance
This PR introduces "lint only" actions. These actions trigger linting, but not evaluation. For example, UPDATE_JS_ACTION_BODY_INIT (which is fired immediately after a user edits the body of a JS Object). Since linting fires without waiting for a successful update on the server, response time decreases by 40% (from 2s to 1.2s).
Reduction in time taken to generate paths requiring linting.
PR fixes following issue(s)
Fixes #23447
Fixes #23166
Fixes #24194
Fixes #23720
Fixes #23868
Fixes #21895
Latest DP: https://appsmith-r3f9e325p-get-appsmith.vercel.app/
Type of change
Testing
How Has This Been Tested?
Test Plan
#23865 (comment)
Issues raised during DP testing
#23865 (comment)
response: #23865 (comment)
Checklist:
Dev activity
QA activity:
Test Plan Approved
label after Cypress tests were reviewedTest Plan Approved
label after JUnit tests were reviewed