Skip to content
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

[APM] Script optimization of APM-specific tsconfig #49868

Merged
merged 3 commits into from Nov 11, 2019

Conversation

@dgieselaar
Copy link
Contributor

dgieselaar commented Oct 31, 2019

Third time's the charm. Previous attempts:

This attempt adds two scripts in apm/scripts, that either create a tsconfig.json optimized for APM, or undo the changes in the optimization. Here's what the optimization process is like:

  • Create a tsconfig.json file in x-pack/legacy/plugins/apm
  • Rename Kibana and X-Pack tsconfig.jsons to apm.tsconfig.json so these projecst are not bootstrapped by VS Code when a file from those projects is encountered.
  • Set --skip-worktree for those tsconfig.jsons to prevent any changes to these files (including deleting them) to show up in the git staging area.
@elasticmachine

This comment has been minimized.

Copy link
Contributor

elasticmachine commented Oct 31, 2019

@smith

This comment has been minimized.

Copy link
Member

smith commented Oct 31, 2019

Looks great to me! I wonder if there's a benchmark we can run to compare the performance.

@dgieselaar

This comment has been minimized.

Copy link
Contributor Author

dgieselaar commented Oct 31, 2019

You can trace the logs from tsserver, or run a CLI check:

node x-pack/legacy/plugins/apm/scripts/optimize-tsconfig time yarn tsc --noEmit --pretty --project x-pack/tsconfig.json (55.50 real 77.30 user 3.14 sys)

vs

node x-pack/legacy/plugins/apm/scripts/optimize-tsconfig && time yarn tsc --noEmit --pretty --project x-pack/legacy/plugins/apm/tsconfig.json (real 0m22.051s
user 0m36.239s
sys 0m1.413s)

@dgieselaar dgieselaar marked this pull request as ready for review Oct 31, 2019
@dgieselaar dgieselaar requested a review from elastic/apm-ui as a code owner Oct 31, 2019
@smith
smith approved these changes Oct 31, 2019
@sqren

This comment has been minimized.

Copy link
Member

sqren commented Nov 1, 2019

Maybe it’s just me but can you elaborate on the skip-worktree step in the instructions?

@sqren

This comment has been minimized.

Copy link
Member

sqren commented Nov 1, 2019

Oh, it looks like skip-worktree happens under the hood - not something the user is supposed to do?

Can you then document the scripts in the readme (and PR description), and how they should be invoked?

@sqren
sqren approved these changes Nov 1, 2019
Copy link
Member

sqren left a comment

This looks great. Haven't played around with it much but I think you can just merge it in, and then we can take it from there.

@dgieselaar dgieselaar added v7.6.0 and removed v7.5.0 labels Nov 2, 2019
@dgieselaar

This comment has been minimized.

Copy link
Contributor Author

dgieselaar commented Nov 2, 2019

The optimization breaks the bootstrapping process (which uses /tsconfig.json). I'll need to think about a solution for that for a bit.

@dgieselaar dgieselaar force-pushed the dgieselaar:apm-optimize-tsconfig branch from 0c4b867 to a5e632c Nov 3, 2019
@elasticmachine

This comment has been minimized.

Copy link
Contributor

elasticmachine commented Nov 3, 2019

@dgieselaar dgieselaar force-pushed the dgieselaar:apm-optimize-tsconfig branch from a5e632c to 998b5af Nov 6, 2019
@elasticmachine

This comment has been minimized.

Copy link
Contributor

elasticmachine commented Nov 6, 2019

@dgieselaar dgieselaar force-pushed the dgieselaar:apm-optimize-tsconfig branch from ba71a99 to 03753ce Nov 6, 2019
@elasticmachine

This comment has been minimized.

Copy link
Contributor

elasticmachine commented Nov 6, 2019

@dgieselaar dgieselaar force-pushed the dgieselaar:apm-optimize-tsconfig branch from 03753ce to b093695 Nov 11, 2019
@dgieselaar dgieselaar force-pushed the dgieselaar:apm-optimize-tsconfig branch from b093695 to 42287ea Nov 11, 2019
@elasticmachine

This comment has been minimized.

Copy link
Contributor

elasticmachine commented Nov 11, 2019

@elasticmachine

This comment has been minimized.

Copy link
Contributor

elasticmachine commented Nov 11, 2019

@dgieselaar dgieselaar merged commit 15f2ebc into elastic:master Nov 11, 2019
57 checks passed
57 checks passed
API integration tests node scripts/functional_tests --config test/api_integration/config.js --bail --debug
Details
Browser tests yarn run grunt test:browser-ci
Details
Build kbn_tp_sample_panel_action yarn build
Details
CLA All commits in pull request signed
Details
Check core API changes node scripts/check_core_api_changes
Details
Check file casing node scripts/check_file_casing --quiet
Details
Check licenses node scripts/check_licenses --dev
Details
Firefox smoke test node scripts/functional_tests --bail --debug --kibana-install-dir /dev/shm/workspace/kibana/build/oss/kibana-8.0.0-SNAPSHOT-linux-x86_64 --include-tag smoke --config test/functional/config.firefox.js
Details
Functional tests / Group 1 yarn run grunt run:functionalTests_ciGroup1
Details
Functional tests / Group 10 yarn run grunt run:functionalTests_ciGroup10
Details
Functional tests / Group 11 yarn run grunt run:functionalTests_ciGroup11
Details
Functional tests / Group 12 yarn run grunt run:functionalTests_ciGroup12
Details
Functional tests / Group 2 yarn run grunt run:functionalTests_ciGroup2
Details
Functional tests / Group 3 yarn run grunt run:functionalTests_ciGroup3
Details
Functional tests / Group 4 yarn run grunt run:functionalTests_ciGroup4
Details
Functional tests / Group 5 yarn run grunt run:functionalTests_ciGroup5
Details
Functional tests / Group 6 yarn run grunt run:functionalTests_ciGroup6
Details
Functional tests / Group 7 yarn run grunt run:functionalTests_ciGroup7
Details
Functional tests / Group 8 yarn run grunt run:functionalTests_ciGroup8
Details
Functional tests / Group 9 yarn run grunt run:functionalTests_ciGroup9
Details
Internationalization check node scripts/i18n_check --ignore-missing
Details
Interpreter functional tests node scripts/functional_tests --config test/interpreter_functional/config.js --bail --debug --kibana-install-dir /dev/shm/workspace/kibana/build/oss/kibana-8.0.0-SNAPSHOT-linux-x86_64-1
Details
Jest integration tests yarn run grunt test:jest_integration
Details
Jest tests yarn run grunt test:jest
Details
Kibana accessibility tests node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/kibana/build/oss/kibana-8.0.0-SNAPSHOT-linux-x86_64 --config test/accessibility/config.ts
Details
Kibana visual regression tests yarn run percy exec -t 500 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/kibana/build/oss/kibana-8.0.0-SNAPSHOT-linux-x86_64 --config test/visual_regression/config.ts
Details
Mocha tests node scripts/mocha
Details
Plugin functional tests node scripts/functional_tests --config test/plugin_functional/config.js --bail --debug --kibana-install-dir /dev/shm/workspace/kibana/build/oss/kibana-8.0.0-SNAPSHOT-linux-x86_64-1
Details
Project tests yarn run grunt test:projects
Details
Type check node scripts/type_check
Details
TypeScript - all files belong to a TypeScript project node scripts/check_ts_projects
Details
Verify NOTICE.txt node scripts/notice --validate
Details
Verify dependency versions yarn run grunt verifyDependencyVersions
Details
X-Pack Chrome Functional tests / Group 1 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-1 --include-tag ciGroup1
Details
X-Pack Chrome Functional tests / Group 10 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-10 --include-tag ciGroup10
Details
X-Pack Chrome Functional tests / Group 2 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-2 --include-tag ciGroup2
Details
X-Pack Chrome Functional tests / Group 3 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-3 --include-tag ciGroup3
Details
X-Pack Chrome Functional tests / Group 4 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-4 --include-tag ciGroup4
Details
X-Pack Chrome Functional tests / Group 5 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-5 --include-tag ciGroup5
Details
X-Pack Chrome Functional tests / Group 6 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-6 --include-tag ciGroup6
Details
X-Pack Chrome Functional tests / Group 7 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-7 --include-tag ciGroup7
Details
X-Pack Chrome Functional tests / Group 8 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-8 --include-tag ciGroup8
Details
X-Pack Chrome Functional tests / Group 9 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-9 --include-tag ciGroup9
Details
X-Pack Jest node scripts/jest --ci --verbose
Details
X-Pack Mocha yarn test
Details
X-Pack SIEM cyclic dependency test node legacy/plugins/siem/scripts/check_circular_deps
Details
X-Pack accessibility tests node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana --config test/accessibility/config.ts
Details
X-Pack firefox smoke test node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-11 --include-tag smoke --config test/functional/config.firefox.js
Details
X-Pack visual regression tests yarn run percy exec -t 500 node scripts/functional_tests --debug --bail --kibana-install-dir /dev/shm/workspace/install/kibana-13 --config test/visual_regression/config.js
Details
elasticsearch-ci/docs Build finished.
Details
eslint node scripts/eslint --no-cache
Details
kibana-ci Build finished.
Details
percy/kibana Visual review automatically approved, no visual changes found.
Details
prbot:outdated
prbot:release note labels
prbot:release version labels
sasslint node scripts/sasslint
Details
@dgieselaar dgieselaar deleted the dgieselaar:apm-optimize-tsconfig branch Nov 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.