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

Always build project irrespective of errors in dependency with tsc -b #58854

Merged
merged 2 commits into from
Jun 14, 2024

Conversation

sheetalkamat
Copy link
Member

No description provided.

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jun 13, 2024
@sheetalkamat
Copy link
Member Author

@typescript-bot test it

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 13, 2024

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
test top400 ✅ Started ✅ Results
user test this ✅ Started 👀 Results
run dt ✅ Started ✅ Results
perf test this faster ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

Hey @sheetalkamat, the results of running the DT tests are ready.

Everything looks the same!

You can check the log here.

@typescript-bot
Copy link
Collaborator

@sheetalkamat Here are the results of running the user tests with tsc comparing main and refs/pull/58854/merge:

Something interesting changed - please have a look.

Details

effect

tsconfig.json

@typescript-bot
Copy link
Collaborator

@sheetalkamat
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - node (v18.15.0, x64)
Errors 30 30 ~ ~ ~ p=1.000 n=6
Symbols 62,153 62,153 ~ ~ ~ p=1.000 n=6
Types 50,242 50,242 ~ ~ ~ p=1.000 n=6
Memory used 193,462k (± 0.97%) 193,456k (± 0.92%) ~ 192,193k 195,753k p=0.810 n=6
Parse Time 1.58s (± 0.65%) 1.57s (± 0.74%) ~ 1.55s 1.58s p=0.491 n=6
Bind Time 0.87s (± 0.94%) 0.87s (± 0.87%) ~ 0.86s 0.88s p=0.729 n=6
Check Time 11.39s (± 0.31%) 11.40s (± 0.40%) ~ 11.33s 11.46s p=0.872 n=6
Emit Time 3.26s (± 0.36%) 3.26s (± 0.86%) ~ 3.21s 3.29s p=0.869 n=6
Total Time 17.09s (± 0.20%) 17.09s (± 0.47%) ~ 16.95s 17.19s p=0.686 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,104 944,104 ~ ~ ~ p=1.000 n=6
Types 407,044 407,044 ~ ~ ~ p=1.000 n=6
Memory used 1,218,572k (± 0.00%) 1,218,505k (± 0.00%) -67k (- 0.01%) 1,218,482k 1,218,528k p=0.010 n=6
Parse Time 7.97s (± 0.86%) 7.96s (± 0.31%) ~ 7.92s 7.99s p=0.688 n=6
Bind Time 2.24s (± 0.77%) 2.23s (± 0.67%) ~ 2.22s 2.25s p=0.323 n=6
Check Time 36.28s (± 0.23%) 36.22s (± 0.16%) ~ 36.14s 36.28s p=0.149 n=6
Emit Time 17.81s (± 0.34%) 17.82s (± 0.37%) ~ 17.71s 17.89s p=0.810 n=6
Total Time 64.30s (± 0.24%) 64.24s (± 0.21%) ~ 63.99s 64.39s p=0.423 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 2,132,301 2,132,301 ~ ~ ~ p=1.000 n=6
Types 926,081 926,081 ~ ~ ~ p=1.000 n=6
Memory used 2,114,966k (± 0.00%) 2,114,934k (± 0.00%) ~ 2,114,808k 2,115,053k p=0.575 n=6
Parse Time 7.86s (± 0.24%) 7.87s (± 0.25%) ~ 7.83s 7.89s p=0.738 n=6
Bind Time 2.75s (± 0.96%) 2.74s (± 0.55%) ~ 2.73s 2.77s p=0.517 n=6
Check Time 83.52s (± 1.08%) 83.95s (± 0.59%) ~ 83.40s 84.61s p=0.471 n=6
Emit Time 0.16s (± 5.21%) 0.16s (± 3.95%) ~ 0.15s 0.17s p=0.432 n=6
Total Time 94.29s (± 0.94%) 94.72s (± 0.53%) ~ 94.14s 95.37s p=0.378 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,229,542 1,229,411 -131 (- 0.01%) ~ ~ p=0.001 n=6
Types 260,916 260,872 -44 (- 0.02%) ~ ~ p=0.001 n=6
Memory used 2,344,302k (± 0.05%) 2,344,034k (± 0.04%) ~ 2,342,196k 2,344,923k p=1.000 n=6
Parse Time 4.97s (± 0.82%) 4.98s (± 0.62%) ~ 4.93s 5.01s p=1.000 n=6
Bind Time 1.88s (± 0.52%) 1.88s (± 1.48%) ~ 1.84s 1.91s p=0.745 n=6
Check Time 34.10s (± 0.44%) 34.21s (± 0.23%) ~ 34.11s 34.32s p=0.199 n=6
Emit Time 2.72s (± 2.15%) 2.72s (± 1.95%) ~ 2.65s 2.79s p=1.000 n=6
Total Time 43.69s (± 0.40%) 43.83s (± 0.18%) ~ 43.75s 43.96s p=0.471 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,229,542 1,229,411 -131 (- 0.01%) ~ ~ p=0.001 n=6
Types 260,916 260,872 -44 (- 0.02%) ~ ~ p=0.001 n=6
Memory used 2,421,018k (± 0.04%) 2,422,071k (± 0.01%) +1,053k (+ 0.04%) 2,421,583k 2,422,497k p=0.045 n=6
Parse Time 6.28s (± 0.70%) 6.26s (± 0.19%) ~ 6.25s 6.28s p=0.228 n=6
Bind Time 2.00s (± 0.80%) 2.00s (± 1.57%) ~ 1.97s 2.06s p=0.934 n=6
Check Time 40.60s (± 0.27%) 40.54s (± 0.44%) ~ 40.35s 40.84s p=0.471 n=6
Emit Time 3.20s (± 3.18%) 3.13s (± 1.44%) ~ 3.06s 3.19s p=0.423 n=6
Total Time 52.08s (± 0.42%) 51.94s (± 0.29%) ~ 51.75s 52.17s p=0.230 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 258,665 258,633 -32 (- 0.01%) ~ ~ p=0.001 n=6
Types 104,931 104,889 -42 (- 0.04%) ~ ~ p=0.001 n=6
Memory used 428,319k (± 0.03%) 428,167k (± 0.01%) -153k (- 0.04%) 428,116k 428,219k p=0.008 n=6
Parse Time 3.31s (± 0.75%) 3.30s (± 0.47%) ~ 3.28s 3.32s p=0.462 n=6
Bind Time 1.30s (± 1.05%) 1.30s (± 0.76%) ~ 1.29s 1.31s p=0.801 n=6
Check Time 18.04s (± 0.29%) 18.07s (± 0.11%) ~ 18.04s 18.10s p=0.227 n=6
Emit Time 1.40s (± 1.23%) 1.38s (± 1.48%) ~ 1.36s 1.41s p=0.222 n=6
Total Time 24.04s (± 0.37%) 24.05s (± 0.13%) ~ 24.00s 24.09s p=0.936 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,565 224,565 ~ ~ ~ p=1.000 n=6
Types 93,734 93,734 ~ ~ ~ p=1.000 n=6
Memory used 369,662k (± 0.03%) 369,639k (± 0.04%) ~ 369,408k 369,873k p=0.810 n=6
Parse Time 3.45s (± 0.70%) 3.44s (± 0.80%) ~ 3.41s 3.48s p=0.806 n=6
Bind Time 1.94s (± 1.40%) 1.95s (± 0.70%) ~ 1.93s 1.96s p=0.560 n=6
Check Time 19.38s (± 0.30%) 19.33s (± 0.28%) ~ 19.26s 19.40s p=0.125 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.78s (± 0.27%) 24.72s (± 0.22%) ~ 24.63s 24.78s p=0.199 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,853,842 2,853,842 ~ ~ ~ p=1.000 n=6
Types 968,167 968,167 ~ ~ ~ p=1.000 n=6
Memory used 3,020,740k (± 0.00%) 3,020,693k (± 0.00%) ~ 3,020,621k 3,020,731k p=0.066 n=6
Parse Time 13.65s (± 0.36%) 13.67s (± 0.12%) ~ 13.64s 13.68s p=0.677 n=6
Bind Time 4.21s (± 2.12%) 4.17s (± 0.25%) ~ 4.16s 4.19s p=0.459 n=6
Check Time 73.81s (± 0.29%) 74.00s (± 0.58%) ~ 73.58s 74.83s p=0.872 n=6
Emit Time 23.65s (± 1.08%) 23.71s (± 1.39%) ~ 23.20s 24.21s p=0.689 n=6
Total Time 115.31s (± 0.26%) 115.55s (± 0.28%) ~ 115.03s 115.94s p=0.128 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 266,914 266,914 ~ ~ ~ p=1.000 n=6
Types 108,685 108,685 ~ ~ ~ p=1.000 n=6
Memory used 411,414k (± 0.02%) 411,384k (± 0.02%) ~ 411,332k 411,506k p=0.336 n=6
Parse Time 3.81s (± 0.68%) 3.80s (± 0.40%) ~ 3.79s 3.83s p=0.565 n=6
Bind Time 1.69s (± 0.48%) 1.69s (± 0.61%) ~ 1.68s 1.71s p=0.270 n=6
Check Time 16.96s (± 0.35%) 16.93s (± 0.40%) ~ 16.82s 17.00s p=0.470 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.46s (± 0.29%) 22.42s (± 0.31%) ~ 22.33s 22.51s p=0.422 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 523,429 523,429 ~ ~ ~ p=1.000 n=6
Types 177,955 177,955 ~ ~ ~ p=1.000 n=6
Memory used 461,398k (± 0.05%) 461,637k (± 0.07%) ~ 461,183k 461,966k p=0.128 n=6
Parse Time 3.15s (± 0.65%) 3.17s (± 0.44%) ~ 3.15s 3.18s p=0.162 n=6
Bind Time 1.18s 1.18s (± 0.44%) ~ 1.18s 1.19s p=0.174 n=6
Check Time 18.18s (± 0.25%) 18.24s (± 0.46%) ~ 18.15s 18.39s p=0.127 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.51s (± 0.21%) 22.58s (± 0.36%) ~ 22.51s 22.74s p=0.051 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Compiler-Unions - node (v18.15.0, x64)
  • angular-1 - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-build-src-public-api - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • ts-pre-modules - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate-main - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@jakebailey
Copy link
Member

This is going to be awesome for benchmarking and extended testing, since we'll actually be able to build build-mode projects without them short circuiting, right?

@typescript-bot
Copy link
Collaborator

@sheetalkamat Here are the results of running the top 400 repos with tsc comparing main and refs/pull/58854/merge:

Everything looks good!

@sheetalkamat
Copy link
Member Author

This is going to be awesome for benchmarking and extended testing, since we'll actually be able to build build-mode projects without them short circuiting, right?

Yes. While debugging you could just build without having to block on errors

@sheetalkamat sheetalkamat marked this pull request as ready for review June 14, 2024 17:56
@sheetalkamat
Copy link
Member Author

#58854 (comment) shows how more packages are being built and errors are reported

Copy link
Member

@weswigham weswigham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we don't do project concatenation anymore, there's not even a reason to block when noEmitOnError is set, neat.

Copy link
Member

@jakebailey jakebailey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So excited for this one.

Are there any issues that this closes? I assume that docs will have to be updated too (surely we document the short circuiting somewhere...).

I also assume that nobody's hard depending on this behavior and we don't need some sort of flag to ask build mode to bail early on failures?

@sheetalkamat
Copy link
Member Author

I am hoping we dont need a flag. If the need arises we should evaluate adding the flag at that point.

@sheetalkamat sheetalkamat merged commit d44c9c3 into main Jun 14, 2024
28 checks passed
@sheetalkamat sheetalkamat deleted the alwaysBuildDependency branch June 14, 2024 20:12
@DanielRosenwasser DanielRosenwasser added this to the TypeScript 5.6.0 milestone Jun 14, 2024
@DanielRosenwasser
Copy link
Member

Could that flag be --noEmitOnError?

@sheetalkamat
Copy link
Member Author

@DanielRosenwasser when i was working on this, i tried that option already and it has no effect, because "d.ts" files from referenced projects will not have errors and blocking project build just because its dependency had error means nothing really. its really whether d.ts file from referenced project has changed or not.

@stavalfi
Copy link

@sheetalkamat Does this PR means that if project1 depends on project2, if project 2 has an error, I would eventually see compilation errors in both projects?
if yes, this is such an awasome PR!!!!!

@sheetalkamat
Copy link
Member Author

@sheetalkamat Does this PR means that if project1 depends on project2, if project 2 has an error, I would eventually see compilation errors in both projects? if yes, this is such an awasome PR!!!!!

Yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants